Анализ многострочного текстового файла фиксированного формата

Я пытаюсь проанализировать некоторые данные в текстовом файле фиксированного формата, где каждая «запись» распределена по ряду строк, так как Итак ...

 MAILBOX: 10013      Created: 01/20/09  4:39 pm
    MSGS: 0         UNPLAYED: 0           URGENT: 0          RECEIPT: 0
  LCOS: RBC Standard    : 20            FCOS: RBC Standard      : 20 
  GCOS: Default GCOS 1  : 1             NCOS: Default           : 1 
  TCOS: Default TCOS 1  : 1             RCOS:                   : 1 
BAD LOGS: 0         LAST LOG: NEVER                             MINS:      0.0
  PASSWD: Y            TUTOR: N              DAY: M            NIGHT: M       
    NAME:                                   CODE: 
   EXTEN: 10013                            INDEX: 0
ATTEN DN:                                  INDEX: 0         
DISTRIBUTION LISTS WITH CHANGE RIGHTS:
    all
DISTRIBUTION LISTS WITH REVIEW RIGHTS:
    all

Я использовал Помощники по файлам раньше для однострочных записей, и это было очень полезно. Проверяя его документацию, он действительно имеет функцию MultiRecordEngine , но это будет означать ...

  • класс для каждой строки ... не проблема
  • вычисление точного размера каждого поля фиксированного формата ... болезненная и открытая для ошибок
  • логика для проверки каждой строки

И еще одна проблема, которую я обнаружил, заключалась в том, что фиксированный формат на самом деле не исправлен , то есть в зависимости от целевой записи существуют разные строки формата, поэтому некоторые из них содержат 21 строку, некоторые - 22, 23, 24 и т. Д.

Я нашел библиотеку синтаксического анализа плоских файлов Java, FFP , но я кодировщик .NET, C #, PowerShell

Есть ли лучшие способы обработки такого рода синтаксического анализа?

6
задан SteveC 30 January 2012 в 08:50
поделиться