Я пытаюсь проанализировать некоторые данные в текстовом файле с фиксированным форматом, где каждая «запись» распределена по нескольким строкам, например ...
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
Я использовал File Helpers ранее для однострочных записей, и это было очень полезно. Проверяя документацию, он имеет функцию MultiRecordEngine
, но это будет означать ...
- класс для каждой строки ... не проблема
- вычисление точного размера каждого поля фиксированного формата ... болезненно и открыто для ошибки
- логика для проверки каждой строки
И еще одна морщина, которую я обнаружил, это фиксированный формат на самом деле не фиксирован , то есть существуют разные строки формата в зависимости от целевой записи, поэтому некоторые имеют 21 строку, некоторые 22 , 23, 24 и т. Д.
Я нашел библиотеку разбора плоских файлов Java, FFP , но я являюсь .NET, C #, PowerShell кодером
Есть ли лучшие способы обработки этого вида анализа?