Текущий архив: 2004.06.27;
Скачать: CL | DM;
ВнизО DBF-файлах Найти похожие ветки
← →
ИМХО © (2004-06-01 06:27) [0]Как по заголовку в dbf-файле узнать, dBase это (это dBase, то какой), FoxPro ли, Clipper и т.д.?
Поделитесь, плиз, способом определения.
← →
sniknik © (2004-06-01 08:37) [1]по заголовку не всегда можно, различия до dBase IV минимальны (а после критичы :) другим не откроеш) проще по индексу, а в заголовке есть байт определяющий тип (только старый фокс в этот байт пишет признак dBase III, можеш скачать имеющий исходники многотипный движок и посмотреть как он определяет, Halcyon к примеру).
и кстати Clipper "всеяден" может работать с фоксовыми(возможно и другими) таблицами без изменения структуры. (родную сразу видно когда на заголовок смитриш, на работу дойду могу показать разницу)
только думаю основной вопрос не в этом, не из абстрактного любопытства же понадобилось.
из Halcyon заголовок описание (только это не единственное место где упоминаются типы)
GSR_DBFHeader = packed Record
DBType : Byte;
Year : Byte;
Month : Byte;
Day : Byte;
RecordCount: LongInt;
Location : Word;
RecordLen : Word;
Reserve1 : Array[0..1] of Byte;
TranIncmpl : byte;
Encrypted : byte;
MultUseFlg : Longint;
UserIDLast : Longint; {!!RFG 081897}
Reserve2 : Array[0..3] of Byte;
DBTableFlag: Byte; {Table Flags}
{ 1 = production index}
{ 2 = has memos (VFP)}
{ 4 = is a DBC (VFP)}
LangID : Byte;
Reserve3 : Array[0..1] of Byte;
end;
← →
sniknik © (2004-06-01 08:40) [2]вот еще это в типах мемо поля
GSobjMemo = class(GSO_DiskFile)
Owner : GSO_DiskFile;
TypeMemo : Byte; {83 for dBase III; 8B for dBase IV; F5 for FoxPro}
MemoLocation : Longint; {Current Memo record}
MemoBloksUsed: word;
Страницы: 1 вся ветка
Текущий архив: 2004.06.27;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.03 c