импорт из необычного ТХТ | |
---|---|
TiAmAT Автор Сообщений: 231 Дата регистрации: 23.07.2008 |
Доброго дня! Имеется тхт файл с необычной (для меня) структурой, который сформирован для печатного вида. Как вытащить и раскидать по полям содержимое? Прошу помощи Спасибо!
Исправлено 1 раз(а). Последнее : TiAmAT, 24.01.18 11:50 |
Re: импорт из необычного ТХТ | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Файл не структурированный, только парсингом с предварительной подчисткой, например
|
Re: импорт из необычного ТХТ | |
---|---|
Pliskin Сообщений: 2959 Откуда: Новосибирск Дата регистрации: 19.11.2003 |
Привести его к обычной структуре и импортировать
|
Re: импорт из необычного ТХТ | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
1.Создать dbf-таблицу с полем Myfield C(254)
2. Выполнить команду: APPEND FROM MYTEXT.TXT SDF 3. Обработать полученные записи, используя информацию о длине каждого блока данных. Результат разбора строки (или нескольких взаимосвязанных строк) записывать в выходной файл соответствующей структуры. Исправлено 1 раз(а). Последнее : Simple777, 24.01.18 12:41 |
Re: импорт из необычного ТХТ | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Ничего предварительно править не надо. Это же не разовая функция. Надо один раз написать обработку документа (со всеми нюансами), и будет щастье.
|
Re: импорт из необычного ТХТ | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
- по позициям (скорее всего не будет работать в большинстве реальных случаев).
- используя регулярные выражения (куча геморроя, но в принципе более-менее рабочий вариант - конечно же до первого серьёзного изменения этой выходной формы, скажем перестановки местами ФИО/счёт или там дата/номер_дока). - послать постановщика такой задачи на 3 буквы и потребовать предоставления данных в нормальной форме - пригодной для автоматизированной обработки информации. Благо таковых форм 100500 видов можно придумать, в т.ч. и "чисто текстовых" - например csv. ------------------ WBR, Igor |
Re: импорт из необычного ТХТ | |
---|---|
Pliskin Сообщений: 2959 Откуда: Новосибирск Дата регистрации: 19.11.2003 |
у ТС в примере одна запись на двух строчках |
Re: импорт из необычного ТХТ | |
---|---|
TiAmAT Автор Сообщений: 231 Дата регистрации: 23.07.2008 |
не совсем понял... |
Re: импорт из необычного ТХТ | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
У него там далеко не одна запись и даже не из двух таблиц... ------------------ WBR, Igor |
Re: импорт из необычного ТХТ | |
---|---|
TiAmAT Автор Сообщений: 231 Дата регистрации: 23.07.2008 |
да, и это всегда продолжение адреса. Это не проблема. |
Re: импорт из необычного ТХТ | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Имеется в виду, что входной текстовый файл нет необходимости править перед выполнением APPEN FROM. Все нюансы можно обработать, работая с записями в таблице dbf. Ну а то, что одна запись может занимать несколько строчек, дак это не беда. Это всё анализируется и обрабатывается. И это ещё довольно тривиальный документ для автоматизированной обработки. Проблемы могут быть, если во входном текстовом документе могут быть неоднозначности. Только тогда придется эти неоднозначности править вручную. |
Re: импорт из необычного ТХТ | |
---|---|
TiAmAT Автор Сообщений: 231 Дата регистрации: 23.07.2008 |
да, видимо таки придётся послать. Но сначала попробую парсить. |
Re: импорт из необычного ТХТ | |
---|---|
TiAmAT Автор Сообщений: 231 Дата регистрации: 23.07.2008 |
понял Спасибо вам за внимание и советы ;) |
Re: импорт из необычного ТХТ | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Для тех, кто "в танке".
Иногда нет никакой возможности заставить вышестоящую организацию что-либо поменять. Вышестоящая организация может предложить или такой вот текстовый файл, или "ничего". Так бывает и с обслуживающими и смежными организациями. Вот и приходится обрабатывать такие документы. |
Re: импорт из необычного ТХТ | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
+100500 У меня например выписки из банка, тоже, далеко не лицеприятный документ, а еще и у разных банков, немного отличаются. Ничего сложного в разборе этой хрени нет. Тока... а на фига в таблицу, чем разбор записи, отличается от разбора строки? Но это дело вкуса. Главное, алгоритм разбора придумать. И сразу в 3 таблицы кидать. Шапка, тело, подвал. Можно конечно в 1, с повтором полей, но... не красиво. ------------------ |
Re: импорт из необычного ТХТ | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
Думаю, ТС 3 таблицы не надо. Скорее всего, надо просто раскидать суммы платежей по лицевым счетам в таблицу оплат. Еще, возможно, и показания счетчиков.
|
Re: импорт из необычного ТХТ | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Можно, конечно и так, сначала вымыть люстру, а потом подметать полы ;) |
Re: импорт из необычного ТХТ | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Или так: пока один курит трубку, другой чистит пепельницу. ;) |
Re: импорт из необычного ТХТ | |
---|---|
Vladimir Sklyar Сообщений: 1397 Дата регистрации: 13.06.2002 |
попроси приват слать дбфку, они могут (если оговорено в договоре, структуру можешь предложить свою или взять их, там ничего сложного) чтобы в будущем не было проблем с импортом (вдруг они сменят вид выписки)
------------------ С уважением Владимир. Исправлено 1 раз(а). Последнее : Vladimir Sklyar, 25.01.18 11:44 |
Re: импорт из необычного ТХТ | |
---|---|
tandem Сообщений: 16 Дата регистрации: 25.05.2008 |
* Обработка текстовой информации clear infile=Getfile('TXT') If File(infile) gnFile = Fopen(infile,10) Else Return Endif If gnFile < 0 Wait 'Не могу открыть файл' Window Nowait Return Endif Clear поручение="" док="" *Обработка строк пока не конец файла. Do While !Feof(gnFile) strok=Fgets(gnFile) * Захват номера документа If At("Платежное",strok)>0 ?strok поручение=Substr(strok,27,121) ?поручение Endif * Если документ If At("0.0",strok)>0 ?strok ?Substr(strok,6,13) ?Substr(strok,20,5) ?Substr(strok,26,15) ?Substr(strok,40,6) *... Endif Enddo =Fclose(gnFile) |
© 2000-2024 Fox Club  |