|
|
|
Проблема с dbf-файлом с MEMO-полями
|
|||
|---|---|---|---|
|
#18+
Имеется DBF-файл, вроде бы формата dBase III с MEMO-полями, содержимое которых лежит в DBT-файле. Есть результат работы корректной программы, которая читает из этого файла MEMO-поле и сохраняет его в файл (т.е. есть "эталонный" вариант). Программа написана на дельфи, с какими то компонентами, деталей не знаю. Нужно читать этот DBF-файл на Java (точнее писать, но для начала надо бы корректно читать). Пробовал разные библиотеки, со всеми проблемы. Всякие простенькие не поддерживают MEMO-поля, в более сложных баги, нужного результата не выдаётся. Пробовал микрософтовский ODBC-драйвер, с ним вообще загадка. Использую строку подключения "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=533;Dbq=...;" (DriverID пробовал ставить 21, 27, 533). Драйвер открывает таблицу, читает поля, в том числе MEMO, сохраняет его в файл правильного размера, вроде всё хорошо. Но при сравнении оказывается, что он портит очень много байтов. Процентов 30. Но не все. Зачем он их изменяет - мне не понятно, если в HEX-редакторе открыть DBT-файл, то видно, что там по определённому смещению содержимое MEMO-поля лежит правильно, но микрософтовский драйвер зачем то его меняет. Какой то закономерности в этом изменении я не обнаружил, совершенно хаотически меняет на первый взгляд. Подскажите, кто сталкивался с подобным поведением, или посоветуйте хороший dbf драйвер или библиотеку для Java. Есть платные, их не хочется использовать, как самый крайний вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 10:16 |
|
||
|
Проблема с dbf-файлом с MEMO-полями
|
|||
|---|---|---|---|
|
#18+
Вроде решил проблему использованием библиотеки xbasej. Правда получаются файлы на 1 байт больше, с последним байтом забитым нулём, но ладно, не страшно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 12:12 |
|
||
|
|

start [/forum/topic.php?fid=56&gotonew=1&tid=2015283]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 405ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...