ПредишенСледващото


В структурата на DBF-файлове unadvanced

В структурата на DBF-файлове unadvanced

влизане

Всичко би било добре, ако не и за BDE.
Не, BDE - това е много добра, на Лошото е, че с помощта на програмата, след като TTable, трябва да багажник мозъка си над това как с минимални загуби, се "върже" BorlandDatabaseEngine до машината на потребителя. Това е първото нещо, което прави седне в продължение на целия живот-заглавия DBF файлове. И второто. Тези същите DBF-файлове имат такава функция, тъй като унищожаването на заглавията. И трето, и четвърто, пето и.

За вас, не е сложността напиши компонент, който работи с DBF-таблици. В този случай, спрете да четете статията!
И ние също така да видите какви са заглавия DBF-файлове и как да използвате знанията си за тяхното практическо приложение.

DBF файл се състои от две части:
  • удар с глава
  • точни записки
Схематично, всичко това може да бъде представен, както следва:

Таблица 1. Структура на DBF файл

Плаващ 0x1A (26)

RecordSize (байт размер запис) и RecordsCount (брой записи), чиито стойности са взети от файла DBF-заглавката ще бъдат обсъдени по-долу.
Сега, когато знаем какво се състои DBF-файлове и какъв размер са те части, се пристъпи към по-подробен преглед на техните структури.

Заглавие Описание DBF файл

Както може да се види от предходната таблица, заглавната част се състои от три части:
  • действителната глава
  • описание полета
  • 0x0D (13) символ зад глава
Размер "правилното глава" е 32 байта, всяка от които носи добре дефинирана стойност.

Таблица 2. DBF-глава структура

Header 0x0D завършва описанието на характера (13)

Сега можем да направим някои изчисления. Например, за да се определи броя на полета в DBF-файл.
DBF-заглавна размер на файла в байтове е:
32 + 32xN + 1 байта, където N - брой области.
В същия размер може да бъде извлечен от заглавието байта 8,9 - HeaderSize
Следователно броят на полетата е:
N: = (HeaderSize-33) / 32 байта.
Изместен към HeaderSize байтове, считано от началото на файла, отиваме директно на действителните записи, размерът на които е уточнен в заглавната байта 10,11 - RecordSize. и броят им в байтове 04..07 - RecordsCount.
Структурата на запис в DBF-подаде по-лесно.

Структура на записите в DBF файл

Всеки запис има следната структура.

Таблица 5. Структура на записа на файл DBF-

заличаване флаг "*", или - на пропастта

Различни видове области на определена дължина
без терминатори
дължина поле п са дефинирани в 16 байт описание поле структура.

Завършва DBF файл характер 0x1A (26)

По този начин, като цяло, на записа - низ от знаци (с изключение на FS), състояща се от части (полета) с определен размер стриктно. Тези размери са в структурата на дефиниция поле в 16-ия байт.

Сега, чрез изследване на структурата на DBF-файлова структура, ние може да:
  1. Вземи важна информация за DBF файл от първите си 32 байта
  2. Променете няколко важни ценности DBF файл:
    • промяна на маса език шофьор
    • развържем таблицата от файла с индекс
    • по желание - нещо друго
  3. Определяне на броя и вида на полета в DBF файл
  4. Проследяване на унищожаването на DBF файл с глава на изчисляване на местоположението на заглавната част на прекратяване и го сравни с 0x0D (13)
  5. Опитайте се да се възстанови заглавната
  6. Създаване на примитивен драйвер за работа с DBF файл без BDE
  7. И много, много повече.

Малка например

В допълнение към материала: DBFCodePage.zip (1.7K) малък транскодер (език водач) ASCII ANSI Победа 1251 DBASE RUS cp866 и обратно.

Подкрепете проекта - споделете линка, благодаря!