|
|
|
Проблема с 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:13 |
|
||
|
Проблема с dbf-файлом с MEMO-полями
|
|||
|---|---|---|---|
|
#18+
Вроде решил проблему использованием библиотеки xbasej. Правда получаются файлы на 1 байт больше, с последним байтом забитым нулём, но ладно, не страшно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 12:12:17 |
|
||
|
Проблема с dbf-файлом с MEMO-полями
|
|||
|---|---|---|---|
|
#18+
v04bvs, А попробуйте этот файл, сталкивался с проблемой записи при помощи xBaseJ, в самой библиотеке комментируешь переменные для записи в индексы. В общем не важно, главное работает на запись :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2013, 17:42:07 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=56&tid=2015283]: |
0ms |
get settings: |
19ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
62ms |
get topic data: |
21ms |
get forum data: |
10ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 263ms |
| total: | 479ms |

| 0 / 0 |
