0

特定の条件が発生した場合、OpenCSV ライブラリを使用して解析されているファイルから行番号を取得するにはどうすればよいでしょうか? その行で誤った値が検出された可能性がある場合は、CSV ファイル内の行番号でユーザーに警告することを検討しています。

これは、ファイルを文字列配列に解析するコードの一部です。

try 
{
    CSVReader reader = new CSVReader(new FileReader(filePath), ',');

    // Reads the complete file into list of tokens.
    List<String[]> rowsAsTokens = null;

    try 
    {
        rowsAsTokens = reader.readAll();
    } 

    for(String[] row: rowsAsTokens) 
    {
        //Check for conditions within CSV file
    }

    catch (IOException e1)
    {
        e1.printStackTrace();
    }
}
4

2 に答える 2

2

CSV を解析するときに、ループのカウンターを設定して行番号をカウントします。

try 
{
    CSVReader reader = new CSVReader(new FileReader(filePath), ',');

    // Reads the complete file into list of tokens.
    List<String[]> rowsAsTokens = null;

    int lineNum = 0;

    try 
    {
        rowsAsTokens = reader.readAll();
    } 

    for(String[] row: rowsAsTokens) 
    {
        lineNum++; // increment the line number
        //Check for conditions within CSV file
        if (ERRONEOUS VALUE) {
            // save the lineNum. possibly to an array or a string. whatever you need
        }
    }

    catch (IOException e1)
    {
        e1.printStackTrace();
    }
}
于 2013-02-11T20:22:53.850 に答える
0

どうですか:

   int line = 0;
   for(String[] row: rowsAsTokens) 
   {

        //Check for conditions within CSV file
        if (isErro) {
            String errMsg = "error in line: " + line;
            // output errrMsg;
        }
        line++;
   }
于 2013-02-11T20:21:43.457 に答える