|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Читаю dbf и fpt вручную. Нигде не могу найти подробную информацию о структуре файлов формата VisualFoxPro, поэтому приходится догадываться. Создал в VisualFoxPro8 таблицу с тремя memo-полями (всего три поля, все memo). Добавил в эту таблицу 3 записи, вписав в каждое поле по значению. Теперь пытаюсь вычитать все это вручную. В fpt-шке есть 9 memo-блоков (как и положено) с нужными мне значениями. Но в dbf-ке в значении полей лежат не номера блоков. Точнее номера блоков + 8 (самый ранний memo-блок имеет номер "0"). Т.е. я ожидал увидеть в dbf-ке значения вида 0 1 2 3 5 7 4 6 8 а увидел 8 9 10 11 13 15 12 14 16 Смещение на 8 - стандарт VisualFoxPro или эта величина как-то расчитывается? Или я вообще что-то делаю не так? :) PS: В архиве прилагаю мои файлики ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 10:07 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Duster, а нафига нужны все эти плски? Фокс плохо читает свои файлы. Кстати, структура файлов не единожды публиковалась и потому не вижу причины изобретать велосипед. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 10:11 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Duster, о, даже в хелпе все структурры расписаны. Раздел File structures. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 10:16 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Читаю из java. Если покажете мне бесплатный (а лучше опен-сорсный) драйвер, умеющий читать memo-поля VFP, я станцую джигу! :) А структура файлов описана, ага (вот например http://msdn.microsoft.com/en-us/library/aa975386%28VS.71%29.aspx). Беда в том, что там не написано, что именно лежит в memo-поле dbf-ки. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 10:28 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
DusterЧитаю из java. Если покажете мне бесплатный (а лучше опен-сорсный) драйвер, умеющий читать memo-поля VFP, я станцую джигу! :)Работающим с фоксом сии дрова как собке пятая нога и потому можете ничего не танцевать. Берете любой доступный драйвер для dbf-файлов и добавляете поддержку vfp-шных вариантов формата. А структура файлов описана, ага (вот например http://msdn.microsoft.com/en-us/library/aa975386%28VS.71%29.aspx). Беда в том, что там не написано, что именно лежит в memo-поле dbf-ки.Там лежит номер первого блока из цепочки блоков с содержимым поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 11:11 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Duster А через JDBC не пробовали читать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 12:10 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
GuestРаботающим с фоксом сии дрова как собке пятая нога и потому можете ничего не танцевать. Берете любой доступный драйвер для dbf-файлов и добавляете поддержку vfp-шных вариантов формата. Вы наверное удивитесь, но именно дописывать драйвер я и пытаюсь. Точнее уже дописал, вписав туда магическое число 8 (считать значение мемо-поля, вычесть восемь, прочитать memo-блок с полученным номером). Об этом я писал в первом сообщении топика. Интересует меня, является ли 8 - константой, или зависит от каких-то параметров? GuestТам лежит номер первого блока из цепочки блоков с содержимым поля. Первое сообщение!, первое сообщение!, первое сообщение!... ну Вы поняли, да? Sea_CatА через JDBC не пробовали читать ? JDBС это такая асбтрактная технология, требующая конкретных реализаций (Oracle-JDBC, ProstgreSQL-JDBC etc.) Именно JDBC-драйвер для dBase я и дописываю. Или вы знаете какой-то рабочий бесплатный драйвер dbf-JDBC? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 13:55 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
проходящий.Там лежит номер первого блока из цепочки блоков с содержимым поля. И кстати, там не может лежать сразу номер блока, т.к. по спецификации null-значению memo-поля соответствует 0x00000000h, а значит нулевой memo-блок должен кодироваться числом, отличным от нуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 13:59 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Извиняюсь, не приходилось писать на java что-либо сложнее скриптов. Если с JDBC в части DBase дела обстоят столь плачевно, то имеет смысл попробовать VFP OLE DB провайдер. Когда использовал него на PHP - работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2009, 14:30 |
|
Что лежит в memo-поле в dbf-ке?
|
|||
---|---|---|---|
#18+
Структура файла FPT по русски описана здесь (с некоторыми уточнениями стандартного HELP) Структура файла Memo (.FPT) Смысл в том, что в файле FPT кроме собственно блоков данных есть еще и заголовочная часть размером 512 байт. С учетом того, что стандартный размер блока - это 64 байта вот и получаем дополнительно 512/64 = 8 блоков. Размер блока указан именно в заголовочной части файла FPT Содержимое мемо-поля начинается с 9 байта первого блока, (номер которого и хранится в файле DBF) поскольку первые 8 байт первого блока - это заголовочная часть ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2009, 18:36 |
|
|
start [/forum/topic.php?fid=41&fpage=112&tid=1585870]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 165ms |
0 / 0 |