Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Удалить индекс для dBase

Delphi , Базы данных , DBASE и DBF

Удалить индекс для dBase

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function UnCheckIndex(FileDbf: string): Boolean;
 var
   Dbf: file;
   Car: Char;
 begin
   Result := T;
   AssignFile(Dbf, FileDbf);
   Car := #0;
   {$I-}
   Reset(Dbf, 1);
   if not ErrorIO(FileDbf, IoResult) then
    begin
     Seek(Dbf, 28);
     {Flag's position}
     if not ErrorIO(FileDbf, IoResult) then
       BlockWrite(Dbf, Car, 1, Num_R)
     else
       Result := F;
     CloseFile(Dbf);
     if ErrorIO(FileDbf, IoResult) then
       Result := F;
   end
   else
     Result := F;
   {$I+}
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if UnCheckIndex('MyBase.dbf') then
     ShowMessage('Flag removed');
 end;

Вот перевод кода на Delphi, который удаляет флаг индекса из файла .dbf (dBase):

Функция UnCheckIndex

  • Функция принимает строковый параметр FileDbf, который является именем файла dBase для модификации.
  • Она присваивает переменной типа файл Dbf значение, указанное в параметре FileDbf.
  • Она присваивает переменной типа символов Car значение 0 (#0).
  • Она сбрасывает указатель файла к началу файла с помощью Reset( Dbf, 1 ). Второй аргумент 1 указывает, что мы хотим сбросить файл в его начальную состояние.
  • Если не возникло ошибок при чтении файла (проверяется с помощью ErrorIO), она перемещает указатель файла к 28-му байту файла (позиция флага индекса) с помощью Seek( Dbf, 28 ).
  • Затем она записывает одиночный символ (Car) в файл, начиная с текущего положения указателя файла (Num_R - это, вероятно, переменная, которая specifies количество байтов для записи). Это эффективно устанавливает флаг индекса в 0.
  • Если возникла ошибка при записи в файл (проверяется с помощью ErrorIO снова), она возвращает False.
  • Она закрывает файл с помощью CloseFile( Dbf ), и если возникла ошибка при закрытии файла, она возвращает False.

Процедура Button1Click

  • Эта процедура вызывается, когда кнопка на форме кликается.
  • Она вызывает функцию UnCheckIndex с именем файла 'MyBase.dbf'.
  • Если функция возвращает True, она отображает сообщение с текстом "Flag removed".

Обратите внимание, что этот код использует встроенные функции ввода/вывода Delphi и не выполняет никакого дополнительного контроля или обработки ошибок, кроме того, что показано здесь. В реальном приложении вы, вероятно, хотели бы добавить более robust ошибка handling и возможные дополнительные проверки на валидность имени файла ввода.

Функция UnCheckIndex позволяет удалить индекс для базы данных dBase, записывая в файл флаг #0 на 28-ю позицию.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DBASE и DBF ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 11:31:16/0.0034899711608887/0