Поиск в неупорядоченной таблице

advertisement
Поиск в неупорядоченной таблице.
Выполнения основной операции – поиска нужной информации –
выделить группу записей или найти одну запись, удовлетворяющую требуемым
условиям.
SET FILTER TO <врж> - команда выделяет в таблице группу записей,
удовлетворяющих <врж>.
После установки фильтра остальные записи становятся недоступными.
Перед выполнением команды фильтра, указатель необходимо
переместить на начало (Go Top).
Set filter to kod_kat=3
Для снятия фильтра выполняется команда Set filter to безопераная.
При фильтрации символьного поля, в качестве фильтра достаточно
использовать первые буквы фамилии. Для фильтрации по подстроке применяют
оператор $.
Пример: Set filter to (“Мустафа” $ name)
Выделит все записи таблицы, в которых поле name содержит слово
“Мустафа”.
Для установки указателя на искомую запись в неупорядоченной
таблице используется команда
Locate [граница] [While<врж>] [For<врж>]
Эта команда просматривает активную таблицу от начала до конца, пока
не найдет первую запись, для которой логическое выражение, следующее за For,
оценивается как истинное.
Совместно с Locate применяется команда Continue, обеспечивающая
перемещение по таблице для нахождения следующих записей,
удовлетворяющих заданному условию.
Поиск в индексированной таблице.
В индексированной таблице поиск выполняется значительно быстрее,
если производится по полю, для которого открыт индекс.
Если поиск записи выполняется только по значению символьного поля,
используется команда
FIND <искомая строка/подстрока символов>
При предварительной установке SET EXACT ON поиск первой
подходящей записи выполняется по всей искомой строке, а если используется
установка SET EXACT OFF, то поиск может производится по начальным
символам строки.
Пример: Use Stud index name
Set exact on
Find Ли Ли
? name – возвращает Ли Ли
Set exact off
Find Л
? name – возвращает Лазарев
Значительно чаще используется команда
SEEK <врж>
Пример: Поиск информации о студенте Авдееве в таблице Stud.
Use Stud index name
Seek ‘Авд’ – возвращает номер найденой записи
? debt? Country – возвращает соответствующие значения других полей
записи.
Если нужная запись не найдена, указатель устанавливается на конец
файла.
Особенно удобна эта команда для приблизительного поиска по
упорядоченному числовому полю или полю типа дата. В результате выполнения
этой команды, если предварительно выполнена команда SET NEAR ON,
указатель устанавливается на ближайшей подходящей записи.
Пример: Use Stud index sum
Set near on
Seek 1140
Browse – если такого значения нет, то курсор устанавливается на записи
со значением поля близким к 1140 на sum равным 1150.
Есть полезная функция Seek (<выражение> [,<область>]) – возвращает
значение .Т., если удачный поиск и .F., если нет. Она заменяет комбинацию
команды Seek и функции Found().
Копирование файлов.
COPY TO <имя нового файла> [<границы>] [Fields<поля>]
[For<условие>] [While<условие>] [Type<тип файла>] [With CDX]
Команда копирует все или указанные записи открытой таблицы в
новый файл.
Опция With CDX копирует вместе с таблицей и одноименный
мультииндексный файл.
Пример: Для создания таблицы NEW на диске F: и копирование в ней
полей f1 и f2 текущей и следующих за ней 99 записей таблицы OLD, если
значение поля f1>700, выполнит программу:
Use OLD
COPY NEXT 100 to F:\NEW FIELDS f1, f2 FOR f1>700
Use NEW
LIST
Копирование структуры таблицы.
Пример:
Use OLD
COPY STRUCTURE TO NEW
Use NEW
DISPLAY STRUCTURE
Download