Лучшие практики для обработки фиксированной ширины в .NET - PullRequest
2 голосов
/ 31 марта 2009

Я работаю в веб-сервисе .NET, который будет обрабатывать текстовый файл с относительно длинным многоуровневым форматом записи. Каждая запись в файле представляет отдельную сущность; запись содержит несколько подтипов. (Тот же формат записи в настоящее время обрабатывается заданием на COBOL, если это даст вам более полное представление о том, что мы смотрим). Я создал структуру класса (DIVISION DATAISION, если хотите) для хранения входных данных.

Мой вопрос заключается в том, какие лучшие практики вы нашли для обработки больших и сложных файлов фиксированной ширины в .NET? Мой общий подход заключается в том, чтобы прочитать всю строку в строку, а затем проанализировать данные из строки в созданные мной классы. Но я не уверен, получу ли я лучшие результаты, работая с символами в строке как массивом, или с самой строкой. Я думаю, что это конкретный вопрос, строка против символа [], но я был бы признателен за любые другие указатели, которые есть у кого-либо.

Спасибо.

1 Ответ

6 голосов
/ 31 марта 2009

Я бы построил классы, которые соответствуют данным в строках, используя атрибуты для типов, длины и т. Д. Затем используйте объект Microsoft.VisualBasic.FileIO.TextFieldParser для чтения файла, с некоторым общим кодом для программирования анализатора на основе класса, затем чтения данные и создание экземпляра класса (все с использованием отражения).

Я использую это для чтения CSV-файлов и его быстрого, гибкого, расширяемого, универсального и простого в обслуживании. У меня также есть атрибуты, которые позволяют мне добавлять общую проверку к каждому полю по мере его чтения.

Я бы поделился своим кодом, но это IP фирмы, на которую я работаю.

...