powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что лежит в memo-поле в dbf-ке?
10 сообщений из 10, страница 1 из 1
Что лежит в memo-поле в dbf-ке?
    #36303037
Duster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю 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: В архиве прилагаю мои файлики
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303056
Duster,
а нафига нужны все эти плски? Фокс плохо читает свои файлы.
Кстати, структура файлов не единожды публиковалась и потому не вижу причины изобретать велосипед.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303069
Duster,
о, даже в хелпе все структурры расписаны. Раздел File structures.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303103
Duster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю из java. Если покажете мне бесплатный (а лучше опен-сорсный) драйвер, умеющий читать memo-поля VFP, я станцую джигу! :)
А структура файлов описана, ага (вот например http://msdn.microsoft.com/en-us/library/aa975386%28VS.71%29.aspx).
Беда в том, что там не написано, что именно лежит в memo-поле dbf-ки.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303243
DusterЧитаю из java. Если покажете мне бесплатный (а лучше опен-сорсный) драйвер, умеющий читать memo-поля VFP, я станцую джигу! :)Работающим с фоксом сии дрова как собке пятая нога и потому можете ничего не танцевать.
Берете любой доступный драйвер для dbf-файлов и добавляете поддержку vfp-шных вариантов формата.
А структура файлов описана, ага (вот например http://msdn.microsoft.com/en-us/library/aa975386%28VS.71%29.aspx).
Беда в том, что там не написано, что именно лежит в memo-поле dbf-ки.Там лежит номер первого блока из цепочки блоков с содержимым поля.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303462
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Duster
А через JDBC не пробовали читать ?
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303845
Duster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GuestРаботающим с фоксом сии дрова как собке пятая нога и потому можете ничего не танцевать.
Берете любой доступный драйвер для dbf-файлов и добавляете поддержку vfp-шных вариантов формата.
Вы наверное удивитесь, но именно дописывать драйвер я и пытаюсь. Точнее уже дописал, вписав туда магическое число 8 (считать значение мемо-поля, вычесть восемь, прочитать memo-блок с полученным номером). Об этом я писал в первом сообщении топика.
Интересует меня, является ли 8 - константой, или зависит от каких-то параметров?

GuestТам лежит номер первого блока из цепочки блоков с содержимым поля. Первое сообщение!, первое сообщение!, первое сообщение!... ну Вы поняли, да?

Sea_CatА через JDBC не пробовали читать ? JDBС это такая асбтрактная технология, требующая конкретных реализаций (Oracle-JDBC, ProstgreSQL-JDBC etc.) Именно JDBC-драйвер для dBase я и дописываю. Или вы знаете какой-то рабочий бесплатный драйвер dbf-JDBC?
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303860
Duster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Там лежит номер первого блока из цепочки блоков с содержимым поля.
И кстати, там не может лежать сразу номер блока, т.к. по спецификации null-значению memo-поля соответствует 0x00000000h, а значит нулевой memo-блок должен кодироваться числом, отличным от нуля.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36303980
Sea_Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, не приходилось писать на java что-либо сложнее скриптов.
Если с JDBC в части DBase дела обстоят столь плачевно, то имеет смысл попробовать VFP OLE DB провайдер. Когда использовал него на PHP - работает.
...
Рейтинг: 0 / 0
Что лежит в memo-поле в dbf-ке?
    #36310724
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура файла FPT по русски описана здесь (с некоторыми уточнениями стандартного HELP)

Структура файла Memo (.FPT)

Смысл в том, что в файле FPT кроме собственно блоков данных есть еще и заголовочная часть размером 512 байт. С учетом того, что стандартный размер блока - это 64 байта вот и получаем дополнительно 512/64 = 8 блоков. Размер блока указан именно в заголовочной части файла FPT

Содержимое мемо-поля начинается с 9 байта первого блока, (номер которого и хранится в файле DBF) поскольку первые 8 байт первого блока - это заголовочная часть
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что лежит в memo-поле в dbf-ке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]