Система управления базами данных Visual FoxPro5.0 - от начальных навыков к профессиональной работе. Крушель Е.Г - 37 стр.

UptoLike

Составители: 

83
Вспомните, что при создании индексного файла stud03 Вы использовали ключ «-»
(минус!) Балл_сес01 (этим достигалось упорядочивание по убыванию: если Балл_сес01
возрастает, то - Балл_сес01убывает).
Запомните! Команда FIND ищет не значение, записанное в соответствующем поле, а значение
ключа индексирования
Поэтому для того, чтобы найти запись, в которой Балл_сес01=4.2 нужно набрать
команду
FIND 4.2 (с минусом).
з) Выполните следующие задания:
найдите запись, в которой средний балл за сессии 01 и 02 равен приблизительно 4.0;
найдите запись, в которой балл за сессию 01 равен 5.0;
найдите запись, в которой 5-
я и 6-я буква фамилии: «ее».
4.4.2. Решим более сложную задачу: составим программу, осуществляющую поиск
записей по очень приблизительным, «туманным» сведениям. Пусть требуется найти
запись по фамилии, относительно которой известно, что «где-то в середине» в ней есть
сочетание букв «вл».
Вначале «придумаем» алгоритм - последовательность действий, ведущих к
достижению результата:
предположим, что возможные варианты размещения буквы «в» в сочетании «вл» -
от 1-ого до 15-ого символа в поле ФИО;
будем перебирать возможные варианты в цикле i=1... 15:
проиндексируем файл по части имени поля
SUBSTR(ФИО,i,2)
попытаемся найти буквы «тв»;
если поиск удачен, то файловый указатель остановится на найденной записи
внутри
файла. Признак конца файла EOF( ) при этом примет значение «ложно» (.F., от
false - ложно). Дальнейший перебор нужно прекратить (это можно сделать, если
положить i=16 - значение цикловой переменной заведомо больше, чем заданное 15).
если поиск неудачен, то файловый указатель остановится вне файла. Признак
конца файла EOF( ) при этом примет
значение «истинно» (.T., от true - истинно). Следует
продолжить перебор с новым вариантом размещения (присвоить i значение i+1);
после окончания циклического поиска:
либо будет найдена запись с буквами «вл» (тогда EOF( ) ложно);
либо запись с буквами «вл» в файле отсутствует (тогда EOF( ) истинно).
В зависимости от результатов поиска следует вывести
сообщение (либо с выдачей
искомой фамилии, либо с указанием, что в файле отсутствует запись, содержащая
заданное сочетание букв).
Ниже приведен текст программы, реализующий этот алгоритм. Некоторые
пояснения к новым командам:
Новые команды и функции:
SET SAFETY OFFотключение режима, при котором Visual FoxPro 5.0 запрашивает
подтверждение Да/Нет (Y/N) перед выполнением команд, которые могут привести к
порче таблицы данных (например, перед записью новой информации в уже
существующий файл).
SET SAFETY ON - включение режима «безопасности».
SET EXACT OFFотключение режима соблюдения точного соответствия наименования ключа
индексирования и запроса на
поиск в командах FIND, SEEK.
SET EXACT ON - включение режима точного совпадения.
SET NEAR ON|OFF- включение/отключение режима точного совпадения цифровых значений
ключа индексирования с искомым.
FIND (ключ) – нахождение номера записи в индексированном файле по значению КЛЮЧА.
SEEK (ключ) - ---------------»-----------------
                                           83

       Вспомните, что при создании индексного файла stud03 Вы использовали ключ «-»
(минус!) Балл_сес01 (этим достигалось упорядочивание по убыванию: если Балл_сес01
возрастает, то - Балл_сес01убывает).
Запомните! Команда FIND ищет не значение, записанное в соответствующем поле, а значение
ключа индексирования
      Поэтому для того, чтобы найти запись, в которой Балл_сес01=4.2 нужно набрать
команду
FIND 4.2 (с минусом).
      з) Выполните следующие задания:
   найдите запись, в которой средний балл за сессии 01 и 02 равен приблизительно 4.0;
   найдите запись, в которой балл за сессию 01 равен 5.0;
   найдите запись, в которой 5-я и 6-я буква фамилии: «ее».

       4.4.2. Решим более сложную задачу: составим программу, осуществляющую поиск
записей по очень приблизительным, «туманным» сведениям. Пусть требуется найти
запись по фамилии, относительно которой известно, что «где-то в середине» в ней есть
сочетание букв «вл».
       Вначале «придумаем» алгоритм - последовательность действий, ведущих к
достижению результата:
       •предположим, что возможные варианты размещения буквы «в» в сочетании «вл» -
от 1-ого до 15-ого символа в поле ФИО;
       •будем перебирать возможные варианты в цикле i=1... 15:
       • проиндексируем файл по части имени поля
SUBSTR(ФИО,i,2)
       • попытаемся найти буквы «тв»;
       • если поиск удачен, то файловый указатель остановится на найденной записи
внутри файла. Признак конца файла EOF( ) при этом примет значение «ложно» (.F., от
false - ложно). Дальнейший перебор нужно прекратить (это можно сделать, если
положить i=16 - значение цикловой переменной заведомо больше, чем заданное 15).
       • если поиск неудачен, то файловый указатель остановится вне файла. Признак
конца файла EOF( ) при этом примет значение «истинно» (.T., от true - истинно). Следует
продолжить перебор с новым вариантом размещения (присвоить i значение i+1);
       •после окончания циклического поиска:
               • либо будет найдена запись с буквами «вл» (тогда EOF( ) ложно);
               • либо запись с буквами «вл» в файле отсутствует (тогда EOF( ) истинно).
       •В зависимости от результатов поиска следует вывести сообщение (либо с выдачей
искомой фамилии, либо с указанием, что в файле отсутствует запись, содержащая
заданное сочетание букв).
       Ниже приведен текст программы, реализующий этот алгоритм. Некоторые
пояснения к новым командам:

                                     Новые команды и функции:
SET SAFETY OFF – отключение режима, при котором Visual FoxPro 5.0 запрашивает
        подтверждение Да/Нет (Y/N) перед выполнением команд, которые могут привести к
        порче таблицы данных (например, перед записью новой информации в уже
        существующий файл).
SET SAFETY ON - включение режима «безопасности».
SET EXACT OFF – отключение режима соблюдения точного соответствия наименования ключа
        индексирования и запроса на поиск в командах FIND, SEEK.
SET EXACT ON - включение режима точного совпадения.
SET NEAR ON|OFF- включение/отключение режима точного совпадения цифровых значений
        ключа индексирования с искомым.
FIND (ключ) – нахождение номера записи в индексированном файле по значению КЛЮЧА.
SEEK (ключ) - ---------------»-----------------