Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг txt не xml, распарсить текстовые файлы 
:(
    Опции темы
EJack
Дата 15.3.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Здравствуйте! 
Вот собственно предыстория:
На предприятие внедряется новое ПО, необходимо наладить взаимодействие с имеющимся старым прог. обеспечением, новое идет на замену старому. 
Но по определенным причинам не возможно сразу исключить использование старого ПО. Взаимодействие в данном случае подразумевает передачу
некоторой информации между разными продуктами, весь обмен осуществляется только посредством обычных текстовых файлов. Форматов куча (более 10)
часть имеют структуру похожую на xml но в большинстве просто текст, тупо отчеты например.

так вот хотелось бы разработать общий механизм парсинга, а потом задать собственный набор файлов и ограничений для каждого формата и все готово!
Может кто знает куда копать что посмотреть, может какие паттерны есть для этого? 
PM MAIL   Вверх
LSD
Дата 15.3.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



В первую очередь посмотри регулярные выражения.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
mbasil
Дата 15.3.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



1. Формат похожий на XML это нечто странное, поскольку XML это всегда "дерево" и никак иначе. Это то и дает возможность эффективно обрабатывать "хорощо сформированные документы". То есть это либо XML, либо не XML. Лучше все-таки использвать XML там, где это возможно. 

2. Если есть возможность "влезать" каким-то образом в старые программы и обеспечить обмен через web службы, это был бы предпочтительный вариант интеграции. Не важно, что часть информации имеет собственный формат и не может быть преобразована - пусть информация идет в SOAP как текстовый элемент (или двоичное "дополнение"), а принимающий узел ее разбирает. 

3. Если реализовывать взаимодействие через web службы, можно на некоторое время "позатыкать дыры" паллиативными решениями, обеспечив общую и однородную инфраструктуру обмена, а потом постепенно приводить все "к общему знаменателю".

4. Если придумывать свой "универсальный" способ решения "на все - про все", потратите уйму времени и ресурсов при неясной перспективе.

Впрочем это всего лишь мое личное мнение.
PM MAIL   Вверх
EJack
Дата 15.3.2008, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 4.9.2007

Репутация: нет
Всего: нет



Вот разъясню еще немного, в организации имеется несколько програмных комплексов от разных производителей, которые между собой совершенно не взаимодействуют.
Теперь внедряется (разрабатывается) продукт котрый должен заменить их. По требованиям их службы безопасности программы взаимодействовать ни как не могут и тем более 
не могут подключаться к "чужим" источникам данных (БД). Все ПО имеет единственный способ представления данных в виде файлов (txt) т.е. все отчеты и выгрузки это только txt 
какието имеют четкую структуру (тут я говорил что схожи с xml в плане структуры с ними проблемы нет парсинг написать не так сложно) Но другие (в большинстве) просто куча текста
который ооооочень сложно поддается анализу :(.

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

Всем спасибо!
PM MAIL   Вверх
Aikus
Дата 17.3.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 29.11.2007

Репутация: нет
Всего: 1



Можно посоветовать только сделать две вещи
1. Интерфейсы для обработки событий при просмотре файлов
2. Сделать абстрактный класс, который будет вызывать эти события во время просмотра текста.

Но все равно, для каждого формата нужно будет переопределять и то и др. =)
PM MAIL   Вверх
LSD
Дата 17.3.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Написать универсальный парсер, который бы мог распарсить все что хочешь - не получится.

Если формат можно описать регулярными выражениями, то можно написать универсальный парсер который будет парсить файл по заданному регулярному выражению. Не имея инфы о формате файлов, можно дать только общие советы.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
fedrbodr
Дата 12.4.2010, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 11.2.2010

Репутация: нет
Всего: нет



Всем привет!
Решил н5 создавать тему а добавить свой вопрос сюда)
У меня есть куча разных текстовых файлов, поля в них просто заданной длинны(тоесть без раделителей) с заполнителями в виде пробелов или нулей.
Вринципе мы уже написали некий побайтовый парсер.. Но терзают сомнения правильности пути? МОжет есть уже готовые скоростные библиотеки или еще какой подход парснига файлов подобного типа?

Пока писал пост пришла такая идея))
МОжно использовать буферед ридер и считывать строку целиком а не побайтово а затем уже от нее делать substring-и и делить на поля...
но вопрос остается:

Как быстрее всего парсить текстовые файлы без разделителей где поля ограниченны количеством символов?
PM MAIL   Вверх
Kangaroo
Дата 12.4.2010, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 21
Всего: 104



Цитата(fedrbodr @  12.4.2010,  09:44 Найти цитируемый пост)
МОжно использовать буферед ридер и считывать строку целиком а не побайтово а затем уже от нее делать substring-и и делить на поля...

Я обычно так делаю.


--------------------
Lost....
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0773 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.