|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Здравствуйте, коллеги! Проблема следующая. Значения из поля "NAME" файла с перечнем подразделений выглядит так: [уйма пробелов]0007007Q[ещё немножко пробелов]Отдел обеспечения. Кто может подсказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 09:59 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-its, а как оно должно было выглядеть? Как выглядит в FoxPro или Access? Что нибудь с кодировкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 15:04 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Должно было выглядеть Отдел обеспечения ... А "0007007Q" - это слепленные значения двух первых полей: "0007" и "007Q". Я сделал XBase-копию этого файла и попробовал считать значение - всё честно. А с оригинальным файлом - что-то странное получается. Там есть 6 мемо-полей. Может дело в этом? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 15:23 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
не понял, в чём состоит проблема, так как нет вопроса. Но для чтения базы Foxpro я испытал несколько готовых программ, и больше понравилась от Intelligent Converters (точностью, в том числе преобразуются поля MEMO). Она преобразует базу из одного формата в другой, например, из Foxpro в MySQL, Oracle или ещё какой-нибудь. Поскольку Foxpro устарело, то есть смысл конвертировать базу и пользоваться современной СУБД, а Foxpro отправить на свалку истории, хотя скрипты и экранные формы Foxpro не переносимы. В общем, можно посмотреть, правильно преобразует. Бесплатная тестовая версия преобразует только первые 5 записей таблицы. Если правильно, то преобразовать и потом работать с нормальной базой. Также можно в бесплатном LibreOffice, в компоненте Base, открыть этот файл базы. Есть ещё ряд программ, но в этой у меня тоже получилось правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 22:39 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Partisan MПоскольку Foxpro устарело, то есть смысл конвертировать базу и пользоваться современной СУБД, а Foxpro отправить на свалку истории, хотя скрипты и экранные формы Foxpro не переносимы. Я не Фокспрошник хотя замечу что в своём сегменте у FoxPro нет аналогов. И если вы ставите знак равенства между произвольной DBMS и языком (и технологией) то вы допускаете много ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 22:50 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
maytonИ если вы ставите знак равенства между произвольной DBMS и языком (и технологией) то вы допускаете много ошибок. Я не допустил ни одной ошибки и ничего не писал про произвольную DBMS и язык (наверно, тоже произвольный). Foxpro устарело, что можно сообразить хотя бы потому, что последняя версия появилась в 2009 г., она 32-битная, её поддержка прекращена и новых версий не будет. Технология (DBase-подобные СУБД) устарела (а DBase давно не существует). Поэтому надо существующие базы сконвертировать в формат одной из современных СУБД и выбросить прежнюю базу вместе с её СУБД (относится ко всем DBase-подобным). Если по какой-то причине сейчас это сделать нельзя (потом всё равно придётся), то предложенный мной способ пригодится, чтобы посмотреть, какие на самом деле данные в исходных таблицах. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2016, 23:38 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Тоже не фокспрошник. Я бы сказал - к сожалению устарела. При сравнении "устаревшие технологии" vs "новомодные", по большинству параметров "устаревшие" явно выигрывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2016, 10:59 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Partisan MЯ не допустил ни одной ошибки и ничего не писал про произвольную DBMS и язык (наверно, тоже произвольный). Foxpro устарело, что можно сообразить хотя бы потому, что последняя версия появилась в 2009 г., она 32-битная, её поддержка прекращена и новых версий не будет. Это было чисто "волюнтаристским" решением MS. Но поначалу фанаты не давали закопать труп. Да и сейчас, вроде бы, фанаты FoxPro его используют. Partisan MТехнология (DBase-подобные СУБД) устарела (а DBase давно не существует). В том то и фишка, что FoxPro это не совсем xBase. А xBase с элементами SQL. Данная технология живет и процветает в T-SQL и plSql. :-) Т.е. процедурный яхык с элементами SQL. Partisan MПоэтому надо существующие базы сконвертировать в формат одной из современных СУБД и выбросить прежнюю базу вместе с её СУБД (относится ко всем DBase-подобным). Если по какой-то причине сейчас это сделать нельзя (потом всё равно придётся), то предложенный мной способ пригодится, чтобы посмотреть, какие на самом деле данные в исходных таблицах. Для "переноса" БД из DBF в любую другую БД есть куча различных программ. Самый простой способ использовать MS Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 07:04 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Здравствуйте, коллеги! Задача как раз и состоит в том, чтобы без лишних движений руками сравнить между собой данные в файлах "Паруса" и во внутренней ИС и вывести в отдельный файлик журнал результатов. Если у кого-то есть опыт программной обработки DBF-файлов "Паруса", подскажите, пожалуйста! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 09:47 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-itsДолжно было выглядеть Отдел обеспечения ... А "0007007Q" - это слепленные значения двух первых полей: "0007" и "007Q". Могу предположить, что ваш драйвер неправильно обрабатывает файл DBF. Попробуйте другой драйвер. Либо в этом, если есть возможность, указать другой тип DBF (они бывают разные). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 12:20 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
mad_nazgulДля "переноса" БД из DBF в любую другую БД есть куча различных программ. Куча есть, но я испытал несколько, и погрешности в преобразованных данных бывают. Назвал те программы, в которых не увидел их. Ограниченная поддержка SQL в FoxPro не имеет отношения к теме, т.к. обсуждается чтение файлов базы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2016, 21:36 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Чтобы привести начальный файл в читаемое состояние (критерий этого - корректный доступ из MSAccess2003), мне пришлось пересохранить его в формате DBaseIV из DBFNavigator. Напомню задачу. Прочитать DBF-файл, распакованный из архива БД "Парус-7" без промежуточных ручных преобразований. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 09:08 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-itsЧтобы привести начальный файл в читаемое состояние (критерий этого - корректный доступ из MSAccess2003), мне пришлось пересохранить его в формате DBaseIV из DBFNavigator. Напомню задачу. Прочитать DBF-файл, распакованный из архива БД "Парус-7" без промежуточных ручных преобразований. Файлы DBF, созданные разными программами, как ни странно, и конечно же благодаря Microsoft (а кто же ещё?), имеют разную структуру. Например файлы FoxPro отличаются от dBase расширенным форматом MEMO полей, FoxPro 2 от FoxPro 3 кодировкой CP866-WIN1251 и т.п. И конечно же все они отличаются структурой индексов. Вам надо точно определиться с форматом ваших исходных файлов. Судя по описанию вашей проблемы, инструмент, которым вы пользуетесь, неверно определяет границы полей в файле и показывает вам часть файла, включающую несколько полей, как оно поле. Т.к. с размерностью полей в DBF напутать довольно сложно, могу предположить, что смещение идёт из-за другой размерности заголовка файла, нежели предполагает ваш инструмент. Попробуйте поискать альтернативу или выставить правильные настройки для чтения DBF файла, если ваш инструмент предполагает какие-либо настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2016, 09:41 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Вот здесь описана вся схема DBF-заголовка, включая тип 48, как в моём случае. При рассмотрении в строковом виде нашёл фрагмент в 264 байта, начинающийся с "parus.dbс". Делаю, вроде, по схеме, но получаю всё равно кривой расклад по полям. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 14:39 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-its, файл в какой ОС был создан? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 15:38 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Кажется, Windows ХР. Думаю, если и Far-овский плагин, и DBFNavigator его корректно открывают, Значит я что-то криво делаю. ... Сижу вот - прочтённые байты считаю. Заголовок - 32, поля - тоже по 32, символ окончания заголовка на месте. Потом идёт parus.dbс и куча \0, потом - первое значение первого поля. Расстояние между первым и вторым значениями первого поля соответствует размеру записи. ... В приведённой схеме есть что-то про зарезервированный фрагмент после описания полей... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 16:16 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-itsПри рассмотрении в строковом виде нашёл фрагмент в 264 байта, начинающийся с "parus.dbс". Когда пытаюсь считать значение первого поля первой записи, получаю "arus", - первое поле - типа С4. То есть читать мой обработчик начинает задолго до нужного значения, но на 1 знак позже, чем символ конца заголовка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2016, 16:25 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-its, Другую библиотеку для чтения DBF не пробовали? Их же полно разных. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 08:45 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Другие не пробовал, а эту взял за наличие исходников. Сейчас опять поищу... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 09:50 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
... Или мёртвые ссылки, или через JDBC-ODBC, - а это мне не подходит. Пробовал на дуру вырезать лишних 264 байта между концом заголовка и началом данных, тоже некорректно читает. Прикладываю используемый пакет: вдруг кому интересно станет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 10:13 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
... А, ну да! А файлик, который надо прочитать - вот. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 11:00 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
ни sdbf Ни dbf manager открыть файл могут. LibreOffice открывает и вроде нормально, можно через его Java API попробовать вытащить данные (SDK качнуть надо будет) hxtt драйвер нормально читает но он платный ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 11:24 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
Вот у этого мастера есть инструмент, который открывает любые DBF. И ещё FAR-овский плагин LOOKDBF - тоже спокойно и чётко открывает. Значит у них учтены тонкости о которых мы не знаем! К А К И Е ? ! ! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 11:30 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
ни sdbf Ни dbf manager открыть файл не могут. авторЗначит у них учтены тонкости о которых мы не знаем! единого стандарта нет на dbf поэтому кто как реализовывал в те годы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 11:48 |
|
Лабуда при чтении VFP DBF (файл Парус-7) с помощью DBFEngine-1.06
|
|||
---|---|---|---|
#18+
alik-its... А, ну да! А файлик, который надо прочитать - вот. Не прошло и недели, автор догадался файл выложил.... Такими темпами, думаю задачу раньше чем через неделю решить не реально ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2016, 12:22 |
|
|
start [/forum/topic.php?fid=59&msg=39162834&tid=2120727]: |
0ms |
get settings: |
8ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
52ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
414ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 775ms |
0 / 0 |