RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Обработка файлов формата DBF

Автор: Алена Федосеева Сайт: http://www.citforum.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   Для взаимодействия с файлами этого формата существует специальный модуль - Xbase.pm На текущий момент поддерживается только возможность чтения таких файлов. Этот модуль подключается стандартным образом: use Xbase;
   
   Новый Xbase объект создается следующим образом:
   
   $database = new Xbase;
   Будет создан объект $database, который в дальнейшем будет использоваться для взаимодействия со всевозможными методами, которые поддерживает модуль. Доступ к базе данных осуществляется следующим образом:
   $database->open_dbf($dbf_name,$idx_name);
   Мы ассоциировали DBF-файл и необязательный индексный файл с объектом. Чтобы определить тип (database type) можно сделать следующее:
   print $database->dbf_type;
   Вернется строка, которая, если Xbase файл открыт, будет содержать значение DBF3, DBF4 или FOX. Чтобы узнать дату последнего обновления делается следующее:
   print $database->last_update;
   Возвращает строку с датой.
   Чтобы узнать номер последней записи можно сделать следующее:
   $end=$database->lastrec;
   Вернется номер последней записи в файле с базой данных.
   Информацию о статусе базы данных можно посмотреть следующим образом:
   $database->dbf_stat;
   В стандартный выходной поток будет напечатана информация о статусе и структуре базы данных. Этот метод работает аналогично команде display status.
   Посмотреть информацию о статусе индексного файла можно используя метод idx_stat:
   $database->idx_stat;
   Печатает в стандартный выходной поток (STDOUT) информацию о статусе открытого IDX-файла.
   Для того чтобы перейти на начало файла есть метод go_top:
   $database->go_top;
   Передвигает курсор чтения на физическое начало файла,если индексы не существуют и на первую запись, соответствующую порядку, который задается индексом, в противоположном случае.
   Для того чтобы перейти на конец файла есть метод go_bottom:
   $database->go_bottom;
   Передвигает курсор чтения на физический конец файла,если индексы не существуют и на последнюю запись, соответствующую порядку, который задается индексом, в противоположном случае.
   Чтобы перейти на следующую запись есть метод go_next:
   $database->go_next;
   Эквивалентно команде skip 1, которая передвигает курсор на следующую запись.
   Чтобы перейти на предыдущую запись есть метод go_prev:
   $database->go_prev;
   Эквивалентно команде skip -1, которая передвигает курсор на предыдущую запись.
   Есть возможность осуществить поиск по заданному ключу:
   $stat=$database->seek($keyvalue);
   Эта команда устанавливает курсор на первую запись, соответствующую данному ключу. Но в данном случае база данных должна быть открыта с соответствующим индексом, в противоположном случае будет выдано сообщение об ошибке и исполнение прекратиться. Возвращается значение, содержащее информацию о том, был ключ найден или нет.
   Чтобы узнать номер записи, на которой стоит курсор можно использовать следующую команду:
   $current_rec=$database->recno;
   Метод bof возвращает значение true, если курсор находится в самом начале файла.
   if ($database->bof) {
   
   
   
    print " At the very top of the file \n";
   
   
   
   }
   Аналогично действует метод eof:
   if ($database->eof) {
   
   
   
    print " At the very end of the file \n";
   
   
   
   }
   Чтобы прочитать содержимое какого-либо поля записи можно поступить так:
   print $database->get_field("NAME");
   Возвращает строку с содержимым поля. Если данная запись помечена для удаления, то использует псевдоимя поля _DELETED.
   Чтобы прочитать значения полей записи в массив можно поступить так:
   @fields = $database->get_record;
   В массиве они будут располагаться в такой же последовательности, как и в базе данных.
   Для закрытия базы данных используется метод close_dbf.
   $database->close_dbf;
   Закрывает файл с базой данных, индексами и комментариями. В завершение приведем небольшой пример программы, которая распечатывает статус базы данных и индексного файла, а также дату последнего обновления и количество записей в базе данных.
   #!/usr/bin/perl
   
   
   
   use Xbase;
   
   
   
   # подключение модуля
   
   
   
   $database = new Xbase;
   
   
   
   # создание объекта
   
   
   
   $d = "/home/smit/employee.dbf";
   
   
   
   # имя файла с базой
   
   
   
   $i = "/home/smit/employee.cdx";
   
   
   
   # имя индексного файла
   
   
   
   $database->open_dbf($d,$i);
   
   
   
   # открываем базу данных
   
   
   
   $database->dbf_stat;
   
   
   
   # печатаем статус и структуру
   
   
   
   # базы данных
   
   
   
   $database->idx_stat;
   
   
   
   # печатаем статус и структуру
   
   
   
   # индексов
   
   
   
   @fields = $database->get_record;
   
   
   
   print @fields,"\n";
   
   
   
   # печатаем содержимое текущей записи
   
   
   
   print $database->last_update, "\n";
   
   
   
   # печатаем дату последнего обновления
   
   
   
   $end = $database->lastrec;
   
   
   
   print $end;
   
   
   
   #печатаем номер последней записи
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool