Отображение текстовых файлов - PullRequest
0 голосов
/ 14 января 2012

У меня есть текстовые файлы, которые всегда приходят в одном и том же текстовом формате (у меня нет xsd текстового файла).

Я хочу отобразить данные из этого в некоторый класс.

Есть ли какой-нибудь стандартный способ сделать это, кроме как начать писать анализаторы строк или некоторые сложные REGEX-ы.

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

Пример

Спасибо.

Ответы [ 3 ]

0 голосов
/ 14 января 2012

Если у вас специальный формат, вам наверняка понадобится собственный синтаксический анализатор .

Если стандартный формат, такой как xml, yml, json, csv и т. Д., Библиотека синтаксического анализа всегда будет доступна на вашем языке.

ОБНОВЛЕНИЕ

Из предоставленного вами примера кажется, что формат больше похож на INI-файл , но записи являются пользовательскими.Может быть, вы могли бы продлить NINI

0 голосов
/ 14 января 2012

Предполагая, что вы не можете изменить формат входящего файла на более машиночитаемый, вам, вероятно, потребуется написать собственный анализатор.Лучший способ сделать это - создать классы для представления и хранения всех типов данных, используя соответствующие форматы данных для каждого поля (пользовательские перечисления, DateTime, версия и т. Д.)

Попробуйтеразделить код.Например, возьмите эти строки здесь:

272 298 9.663 18.665 -90.000 48 0 13 2 10 5 20009 1 2 1 257 "C4207" 0 0 1000 0 0

Это может быть отдельный класс или структура.Его конструктор может принимать вышеуказанную строку в качестве параметра, и каждое значение может быть проанализировано для различных локальных членов.В этом же классе может быть метод Save () или ToString (), который при необходимости преобразует все значения обратно в строку.

Тогда родительский класс будет просто содержать массив вышеуказанной структуры, в зависимости от того, сколькозаписи находятся в файле.

0 голосов
/ 14 января 2012

Решение:

  1. Измените формат этого файла на стандартный формат, такой как разделенный табуляцией или CSV-файл с разделителями-запятыми.
  2. Затем используйте множество библиотек для чтения этих файлов или импортируйте их в базу данных и используйте ORM, такой как Entity Framework, для их чтения
...