{*******************************************************} { } { Простой модуль для работы с DBF файлами } { } { Copyright (c) 2003-2008 Серга Плотников } { zoth@bk.ru } { } {*******************************************************} UNIT DBFLite; // DBFLite - Простой модуль для работы с DBF файлами // Copyright (c) 2003-2008 Серга Плотников // Почта: zoth@bk.ru // Сайт : www.autoaf.ru // ICQ : 235846782 // Условия распространения - Open Source // Вы можете свободно использовать исходный файл этого модуля // в каких угодно целях, необязательно даже ставить ссылку // Модуль используется в работе достаточно давно, // тем не менее, никаких гарантий правильной работы // не даётся. Вы используете его на свой страх и риск // Автор не несёт никакой ответственности ни за какие // последствия использования данного модуля // Основные возможности // – Чтение, запись строковых, целочисленных, // логических, MEMO и дата полей // – Восстановление, удаление записей // – Признак удалённой записи // – Полная очистка таблицы // // Не поддерживаются (и не будут) никакие индексы. // После исправления данных индексы лучше удалить // и восстановить программой, предназначенной для этого // Нет (и не будет) процедуры упаковки таблицы. // Нет (и не будет) процедур для создания таблиц // Для создания новой таблицы можно скопировать // её структуру из готовой таблицы // Конвертацию кодировок DOS <--> WIN написать несложно // Готовые решения есть на сайте Королевства Дельфи // Модуль тестировался на базе, созданной в FoxPro для Windows // открываем базу, считываем заголовок constructor Init(const FN: string; const ReadOnly: Boolean = false); // закрываем базу destructor Done; // признак удалённой записи function Deleted(const aRec: integer): boolean; // удаление записи procedure Delete(const aRec: integer); // восстановление записи procedure UnDelete(const aRec: integer); // быстрая очистка таблицы procedure Zap; // номер поля по названию function FieldByName(const FieldName: string): integer; // чтение текста ячейки как есть по номеру записи, номеру поля function ReadCell (const aRec, aField: integer): string; // чтение строкового значения поля function Readstring (const aRec, aField: integer): string; // чтение числового значения поля function ReadInteger(const aRec, aField: integer): integer; // чтение логического значения поля function ReadBool (const aRec, aField: integer): boolean; // чтение значения поля типа дата function ReadDate (const aRec, aField: integer): TDate; // чтение MEMO значения поля function ReadMemo (const aRec, aField: integer): string; // вставка пустой записи в конец procedure Insert; // запись в ячейку строки как есть procedure WriteCell (const aRec, aField: integer; const S: string); // запись строкового значения поля procedure Writestring (const aRec, aField: integer; const S: string); // запись числового значения поля procedure WriteInteger(const aRec, aField, x: integer); // запись логического значения поля procedure WriteBool (const aRec, aField: integer; b: boolean); // запись значения поля типа дата procedure WriteDate (const aRec, aField: integer; d: TDate); // запись MEMO значения поля procedure WriteMEMO (const aRec, aField: integer; const S: string); // конвертация строковой даты в TDate function StringDBFToDate(const S: string): TDate;
Понравилась статья? Расскажите о ней друзьям! назад на главную