![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открыть .dbf без индекса [D5, dBase, FoxPro]
Игорь Писанко © (2004-11-18 16:36:00)Требуется открыть базу .DBF но делфи выдает Invalid index descriptor. Как открыть базу и создать новый индексный фаил.Спасибо за пример.
Anatoly Podgoretsky (2004-11-18 21:07:00) [1]Ну тебя вообще потянуло на закерские хлеба.
SergP (2004-11-18 21:02:00) [2]Хорошо. Тогда так:
Вот нашел описание заголовка:
+----------------------------------------------------------+
¦ Запись заголовка в файле с данными ¦
¦----------------------------------------------------------¦
¦ Байты ¦ Описание ¦
¦-------+--------------------------------------------------¦
¦ 00 ¦Типы файлов с данными: ¦
¦ ¦ FoxBASE+/dBASE III +, без memo - 0х03 ¦
¦ ¦ FoxBASE+/dBASE III +, с memo - 0х83 ¦
¦ ¦ FoxPro/dBASE IV, без memo - 0х03 ¦
¦ ¦ FoxPro с memo - 0хF5 ¦
¦ ¦ dBASE IV с memo - 0x8B ¦
¦-------+--------------------------------------------------¦
¦ 01-03 ¦Последнее изменение (ГГММДД) ¦
¦-------+--------------------------------------------------¦
¦ 04-07 ¦Число записей в файле ¦
¦-------+--------------------------------------------------¦
¦ 08-09 ¦Положение первой записи с данными ¦
¦-------+--------------------------------------------------¦
¦ 10-11 ¦Длина одной записи с данными (включая признак ¦
¦ ¦удаления) ¦
¦-------+--------------------------------------------------¦
¦ 12-27 ¦Зарезервированы ¦
¦-------+--------------------------------------------------¦
¦ 28 ¦1-есть структ.составной инд.файл (типа .CDX),0-нет¦
¦-------+--------------------------------------------------¦
¦ 29-31 ¦Зарезервированы ¦
¦-------+--------------------------------------------------¦
¦ 32-n ¦Подзаписи полей** ¦
¦-------+--------------------------------------------------¦
¦ n+1 ¦Признак завершения записи заголовка (0х01) ¦
+----------------------------------------------------------+
Можно любыми другими средствами исправить 28-й байт (т.е. открыть любым hexedit'ором и исправить байт со смещением $0001С c 01 на 00)
Anatoly Podgoretsky (2004-11-18 20:41:00) [3]А что делать тем, кто этот фокспро и в глаза не видал, а Дельфи есть.
SergP (2004-11-18 20:18:00) [4]ну я так привык. Мне фокспро удобнее родных инструментов...:-))
Anatoly Podgoretsky (2004-11-18 19:47:00) [5]А зачем фокспро, что родных инструментов недостаточно или программным путем.
SergP. (2004-11-18 19:35:00) [6]Открой dbf в фоксе (при этом индексного файла не должно быть в этой же папке). Фокс матюкнется на тебя. выберешь ignore и закроешь фокс.
Либо вручную исправь в dbf нужный байт в заголовке (только вот я не помню точно какой). Поищи сам...Поисковики есть..