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

UptoLike

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

85
«Поэкспериментируйте» с программой (модифицируйте ее, команда MODIFY
COMMAND fnd, не забывайте записывать Ctrl-W):
отключите команду SET SAFETY OFF (для этого поставьте знак * в начале строки, и
Visual FoxPro 5.0 «будет думать», что это - строка примечаний), запустите программу и
сравните, как работает программа;
при включенном/отключенном режиме «безопасности» SET SAFETY ON/OFF;
внесите в программу изменения, нужные для того, чтобы было найдено сочетание букв
«ар»;
измените размещение ответов Visual FoxPro 5.0 на экране так, чтобы Вам нравилось.
Сходные с командой SEEK (FIND) задачи можно решить, используя функцию
SEEK(выражение для поиска), которая возвращает логическое значение .Т. в случае успешного
поиска. Использование данной функции аналогично последовательному выполнению команды
SEEK, а затем функции FOUND(), которая возвращает логическое значение .Т., если после
команды FIND (SEEK) поиск в текущей рабочей области
завершен успешно. Например, в
диалоге Work Area Properties в поле Index order выберите ключ индексирования ФИО (если
помните, мы проиндексировали поле ФИО по возрастанию) и нажмите кнопку OK, на экране
появилась индексированная таблица, наберите команду в командном окне:
@ 2,6 SAY SEEK ("Ж").
И на экран в указанной позиции будет выведено логическое .T. (TRUE – истина), т.е. поиск
записи
в индексной таблице, у которой фамилия начинается с буквы "Ж" завершен удачно.
Более подробное описание команды (т.е. с остальными необязательными параметрами) см.
помощь (F1).
4.4.3. Поиск записей в неиндексированном файле. Если база данных невелика
(менее 100 записей, менее 10 полей), индексирование не даст заметного выигрыша во
времени по сравнению с «прямым», переборным поиском. Этот поиск осуществляется
совокупностью команд:
LOCATE [<scope>] [FOR <exprL>][WHILE <exprL>]
<серия команд FoxPro2.0>
[CONTINUE]
Здесь: <scope> - группа записей (все, ALL;
насколько следующих NEXT<число>;
оставшиеся до конца файла REST); (по умолчанию поиск ведется по всей базе данных).
FOR... WHILE - необязательная часть команды, задающая условие поиска:
запись найдена, если логическое условие <exprL> истинно.
FOR - устанавливает условия для всех записей файла;
WHILE действует до тех пор, пока не будет «встречена» первая запись,
не
удовлетворяющая условию <exprL>.
По команде LOCATE файловый указатель останавливается на «первой
встреченной» записи, для которой соблюдается условие поиска FOR... или WHILE.
Затем может быть выполнена серия команд (например, просмотра базы данных
и/или определения номера записи, на которой остановился указатель).
Затем поиск может быть продолжен - необязательная опция CONTINUE для
нахождения
записей, возможно, также удовлетворяющих условию поиска - до конца
файла (когда функция EOF( ) возвратит .T. истина»)).
Очень мощной функцией поиска является LOOKUP (возвращаемое поле, выражение для
поиска, поле поиска). При успешном завершении поиска указатель записи передвигается на
запись, содержащую искомое значение. Например, Вы можете вывести номер группы студента,
фамилия которого начинается с буквы "Ж":
@ 2,2 SAY LOOKUP (Группа, "Ж", ФИО).
После чего в заданной позиции на экране появится запись
КЭ-206.
Более подробное описание команды (т.е. с остальными необязательными параметрами) см.
помощь (F1).
                                            85

  «Поэкспериментируйте» с программой (модифицируйте ее, команда MODIFY
COMMAND fnd, не забывайте записывать Ctrl-W):
• отключите команду SET SAFETY OFF (для этого поставьте знак * в начале строки, и
  Visual FoxPro 5.0 «будет думать», что это - строка примечаний), запустите программу и
  сравните, как работает программа;
• при включенном/отключенном режиме «безопасности» SET SAFETY ON/OFF;
• внесите в программу изменения, нужные для того, чтобы было найдено сочетание букв
  «ар»;
• измените размещение ответов Visual FoxPro 5.0 на экране так, чтобы Вам нравилось.
       Сходные с командой SEEK (FIND) задачи можно решить, используя функцию
SEEK(выражение для поиска), которая возвращает логическое значение .Т. в случае успешного
поиска. Использование данной функции аналогично последовательному выполнению команды
SEEK, а затем функции FOUND(), которая возвращает логическое значение .Т., если после
команды FIND (SEEK) поиск в текущей рабочей области завершен успешно. Например, в
диалоге Work Area Properties в поле Index order выберите ключ индексирования ФИО (если
помните, мы проиндексировали поле ФИО по возрастанию) и нажмите кнопку OK, на экране
появилась индексированная таблица, наберите команду в командном окне:
@ 2,6 SAY SEEK ("Ж").
И на экран в указанной позиции будет выведено логическое .T. (TRUE – истина), т.е. поиск
записи в индексной таблице, у которой фамилия начинается с буквы "Ж" завершен удачно.
Более подробное описание команды (т.е. с остальными необязательными параметрами) см.
помощь (F1).

       4.4.3. Поиск записей в неиндексированном файле. Если база данных невелика
(менее 100 записей, менее 10 полей), индексирование не даст заметного выигрыша во
времени по сравнению с «прямым», переборным поиском. Этот поиск осуществляется
совокупностью команд:
        LOCATE [] [FOR ][WHILE ]
            <серия команд FoxPro2.0>
        [CONTINUE]
       Здесь:  - группа записей (все, ALL; насколько следующих NEXT<число>;
оставшиеся до конца файла REST); (по умолчанию поиск ведется по всей базе данных).
       FOR... WHILE - необязательная часть команды, задающая условие поиска:
запись найдена, если логическое условие  истинно.
FOR - устанавливает условия для всех записей файла;
WHILE       действует до тех пор, пока не будет «встречена» первая запись, не
удовлетворяющая условию .

       По команде LOCATE файловый указатель останавливается на «первой
встреченной» записи, для которой соблюдается условие поиска FOR... или WHILE.
       Затем может быть выполнена серия команд (например, просмотра базы данных
и/или определения номера записи, на которой остановился указатель).
       Затем поиск может быть продолжен - необязательная опция CONTINUE для
нахождения записей, возможно, также удовлетворяющих условию поиска - до конца
файла (когда функция EOF( ) возвратит .T. («истина»)).

Очень мощной функцией поиска является LOOKUP (возвращаемое поле, выражение для
поиска, поле поиска). При успешном завершении поиска указатель записи передвигается на
запись, содержащую искомое значение. Например, Вы можете вывести номер группы студента,
фамилия которого начинается с буквы "Ж":
@ 2,2 SAY LOOKUP (Группа, "Ж", ФИО).
После чего в заданной позиции на экране появится запись КЭ-206.
Более подробное описание команды (т.е. с остальными необязательными параметрами) см.
помощь (F1).