2014-09-22 3 views
1

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

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

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

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

<addition text>..... 
    Date   Document   Invoice    Deductions  Paid Amount 
    -------------------------------------------------------------------------------------------- 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 
    21.03.2014 9289    9280     0.00      48,000.00 
    10.01.2013 21389    9402     3.00      4,000.00 

    Sum Total 
    Please ....<text> 
+0

Если вам просто нужны данные, почему бы не простой файл CSV? Не так красиво для людей читать, но он получает данные без «пуха». – gunr2171

+0

Мы получаем * .txt файлы от клиентов – Sunny

+0

Мне непонятно, что вы просите. Вы спрашиваете, в каком формате данных вы должны сообщить своим клиентам о предоставлении данных? XML и JSON часто являются хорошими форматами для обмена данными, хотя они не дружелюбны к человеку, поэтому вы хотите создать программу, которая генерирует их для вас. В противном случае CSV или Excel - хороший выбор. – mason

ответ

0

Если у вас слишком много, чтобы сделать код решения - то есть IExtractor .Parse, что Вы упоминаете, - то я бы для встроенного языка сценариев

Вы можете написать скрипт на одного клиента.

Я бы использовал Javascript в качестве языка (он встроен в поддержку регулярных выражений). Я бы использовал проект jint из codeplex

Смежные вопросы