Разбор текста / Упорядочить текст в файле журнала - PullRequest
2 голосов
/ 04 ноября 2011

Я пытаюсь прочитать файл журнала, написанный в этой форме, используя java:

2 05.08.2011 13:07:54.136 .r5 objects - ODBC [128] - C:\Windows\example.r5 [30] - 0x081BF015 - TLineThread.ModuleODBC the ODBC driver reports an error - parameter strSQLError contains the error information 
1 09.08.2011 19:01:28.473 .r5 objects - ODBC [27] - C:\Windows\ExampleWithALongName.r5 [18] - 0x081BF015 - ODBC driver reports an error - parameter strSQLError contains the error information 

И что это за вывод в таком виде:каждая строка, разделитель "-" находится точно под разделителем "-" строки ранее.(Не важно, если имена путей длиннее или отличаются)

Как мне это сделать?

1 Ответ

1 голос
/ 04 ноября 2011

Есть 6 частей, и вы должны найти самую длинную из них в строках.

    File file = new File(inputFilePath);
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        int[] partCharCount = new int[6];
        for(int c : partsCount)
            c=0;

        while((line=br.readLine())!=null)
        {
            String[] parts = line.split("\\s*-\\s*");
            for(int i=0;i<parts.length; i++)
                if(parts[i].length() > partCharCount[i])
                    partCharCount[i] = parts.length;
        }

после этого вы должны снова прочитать этот файл, разбить каждую строку на части, как в этом коде, а затем добавить к каждой части пространства, чтобы достигнуть partsCount [i] + 1

...