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

UptoLike

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

84
EOF( )признак нахождения файлового указателя в конце файла (EndOf File):
EOF( )=.T.файловый указатель - в конце файла.
EOF( )=.F.файловый указатель - внутри файла.
IF <exprL> <серия 1>ELSE <серия 1>ENDIF конструкция ветвления: если логическое условие
<exprL> истинно, то выполняется серия 1 команд, иначе (ELSE) - серия 2.
IF... ENDIFначало и конец конструкции
ветвления (операторные скобки)
RECNO( )функция, возвращающая номер записи, на которой в данный момент находится
файловый указатель
@row,col SAY «строка_текста_в_кавычках» - вывод сообщения (указанного в кавычках) на экран
с размещением первой буквы в заданных строке (row) и столбце (col). Возможны
значения: row=1...23, col=1...79
Текст программы (наберите его с помощью текстового редактора MODIFY
COMMAND <имя, напр. fnd> и после набора и записи Ctrl-W,^W выполните DO fnd).
*Программа fnd. prg, иллюстрирующая поиск данных в индексированных файлах
CLEAR && очистка экрана.
USE students && students.dbf открывается в рабочей области.
SET EXACT OFF && отключается режим точного совпадения ключа
и запроса.
SET SAFETY OFF && откл. режим подтверждения опасных команд.
i=1 && первый вариант размещения букв вл.
DO WHILE i<=15 && цикл по возможным размещениям букв вл
INDEX ON SUBSTR(ФИО,i,2) TO stud02
* индексирование с текущим вариантом (i-м,i=1...15) размещения искомых букв.
FIND «вл» && попытка найти буквы вл.
IF EOF( )
&& если EOF( )=.T. - истинно, то достигнут конец файла - т.е. вл
&& при данном значении i не найдено.
i=i+1 && новый возможный вариант размещения вл.
ELSE && если EOF( )=.F. - ложно, то файловый
&& указатель остановился внутри файла,
&& т.е. буквы вл найдены.
i=16 && нужно прервать дальнейший поиск и
&& выйти из цикла
, поэтому присваиваем i=16.
ENDIF && конец конструкции ветвления.
END DO && конец циклической конструкции.
IF EOF( ) && если после перебора всех возможных
&& вариантов размещения файловый
&& указатель находится в конце файла,
&& EOF( )=.T. - истинно - то это означает,
&& что букв вл ни в одной записи нет.
@2,10 SAY «Сочетание букв вл не найдено»
* @row,col - строка (row,
можно 1..23) и столбец (col, можно 1..79),
* в которой размещается текст SAY..., выводимый Visual FoxPro 5.0
ELSE &&файловый указатель - внутри файла, т.е. запись с буквами вл
&&найдена.
@2,12 SAY «Фамилия, содержащая буквы вл
* текст сообщений по результатам поиска
@4,20 SAY ФИО
@6,10 SAY «номер записи в файле с этой фамилией
@8,16 SAY RECNO( )
ENDIF
SET SAFETY ON && восстановление режимов,
SET EXACT ON && предусмотренных по умолчанию.
                                            84

EOF( ) – признак нахождения файлового указателя в конце файла (EndOf File):
         EOF( )=.T. – файловый указатель - в конце файла.
         EOF( )=.F. – файловый указатель - внутри файла.
IF  <серия 1>ELSE <серия 1>ENDIF – конструкция ветвления: если логическое условие
          истинно, то выполняется серия 1 команд, иначе (ELSE) - серия 2.
IF... ENDIF – начало и конец конструкции ветвления (операторные скобки)
RECNO( ) – функция, возвращающая номер записи, на которой в данный момент находится
         файловый указатель
@row,col SAY «строка_текста_в_кавычках» - вывод сообщения (указанного в кавычках) на экран
         с размещением первой буквы в заданных строке (row) и столбце (col). Возможны
         значения: row=1...23, col=1...79

    Текст программы (наберите его с помощью текстового редактора MODIFY
COMMAND <имя, напр. fnd> и после набора и записи Ctrl-W,^W выполните DO fnd).

*Программа fnd. prg, иллюстрирующая поиск данных в индексированных файлах
CLEAR                && очистка экрана.
USE students         && students.dbf открывается в рабочей области.
SET EXACT OFF && отключается режим точного совпадения ключа и запроса.
SET SAFETY OFF && откл. режим подтверждения опасных команд.
i=1                 && первый вариант размещения букв вл.
DO WHILE i<=15 && цикл по возможным размещениям букв вл
  INDEX ON SUBSTR(ФИО,i,2) TO stud02
* индексирование с текущим вариантом (i-м,i=1...15) размещения искомых букв.
  FIND «вл»          && попытка найти буквы вл.
IF EOF( )            && если EOF( )=.T. - истинно, то достигнут конец файла - т.е. вл
                     && при данном значении i не найдено.
i=i+1                && новый возможный вариант размещения вл.
    ELSE            && если EOF( )=.F. - ложно, то файловый
                    && указатель остановился внутри файла,
                    && т.е. буквы вл найдены.
      i=16           && нужно прервать дальнейший поиск и
                    && выйти из цикла, поэтому присваиваем i=16.
   ENDIF             && конец конструкции ветвления.
 END DO              && конец циклической конструкции.
IF EOF( )            && если после перебора всех возможных
                    && вариантов размещения файловый
                    && указатель находится в конце файла,
                    && EOF( )=.T. - истинно - то это означает,
                    && что букв вл ни в одной записи нет.
 @2,10 SAY «Сочетание букв вл не найдено»
 * @row,col - строка (row,можно 1..23) и столбец (col, можно 1..79),
 * в которой размещается текст SAY..., выводимый Visual FoxPro 5.0
 ELSE                &&файловый указатель - внутри файла, т.е. запись с буквами вл
                     &&найдена.
   @2,12 SAY «Фамилия, содержащая буквы вл:»
   * текст сообщений по результатам поиска
  @4,20 SAY ФИО
  @6,10 SAY «номер записи в файле с этой фамилией:»
  @8,16 SAY RECNO( )
 ENDIF
SET SAFETY ON           && восстановление режимов,
SET EXACT ON            && предусмотренных по умолчанию.