Команды языка FoxPro

Команды языка FoxPro

Команды языка FoxPro

В табл. 5.8 содержится список типов команд, с краткой характеристикой их некоторых представителей.

Таблица 5.8. Обзор некоторых команд FoxPro для их различных типов

Тип команд

Примеры команд

Результат выполнения

Режим выполнения команд

Диалоговые

Resume

Заставляет программу продолжить выполнение со строки, следующей за той, на которой выполнение программы было приостановлено (командой Suspend)

Run

Выполняет из среды FoxPro файл с расширением . сот, . ехе ИЛИ . bat

Continue

Продолжает поиск, начатый командой Locate

Продолжение табл. 5.8

Тип команд

Примеры команд

Результат выполнения

Пакетные

(программные)

Do Case... Endcase

Выбирает один вариант действия из имеющегося перечня

Do While... Enddo

Непрерывно выполняет команды между Do while и Enddo до тех пор, пока условие остается истинным

Exit

Позволяет ВЫЙТИ ИЗ цикла Do While, For

Диалоговые и пакетные

Clear

Очищает экран

Browse

Может вывести из файла данных на дисплей до 20 записей (см. рис. 5.13)

Edit

Загружает полноэкранный редактор записей (см. рис. 5.7, а).

Процедурность команд

Процедурные

If...Endif

Если условие является истинным, то выполняются все команды, расположенные между if и Endif

Loop

Переход на начало ЦИКЛа Do While . . . Enddo

Непроцедурные

Find

Устанавливает указатель записи на первую запись, содержащую индексный ключ, соответствующий выражению в команде

Sum

Дает общую сумму полей, включающих числовые поля

Sort

Создает и сортирует копию файла данных

Назначение команд

Установление режимов и оп- ций

Set Exact

Определяет с какой точностью будут сравниваться две строки символов.

Set Format

Открывает файл формата ввода-редактирования текущего файла данных

Set Color

Определяет атрибуты цветов экрана

Управление вычислительным процессом

Do, Return

Вызывает командный файл и осуществляет возврат в вызывающую программу

Do

См. выше Do While <Условие> ... Enddo, Loop, Exit, Do Case . . . Case . . . Endcase, if ... Else ... Endif

Создание БД

Create

Создает новый файл данных и определяет его структуру

Create

Report

Создает или изменяет файл с форматом отчета

Index

Создает индексный файл, основанный на выражении (которое обычно является именем поля или комбинацией полей)

Продолжение табл. 5.8

Тип команд

Примеры команд

Результат выполнения

Загрузка/ выгрузка БД

Append From

Загружает (импортирует) файл БД из файла ОС

Copy То

Выгружает (экспортирует) данные из файла БД в файл ОС

Ввод данных

Get

Вводит отдельное поле, строку, или пользовательскую переменную

Append

Создает пустую запись в конце текущего файла и позволяет заполнение с применением пользовательского формата Экрана (команды Browse, Edit)

Вывод данных

Say

Выдает на экран или принтер поле, данное или строку

?

Выводит на экран значение выражения FoxPro (см. рис. 5.5)

Report

Выдает поколонный отчет на экран или принтер с использованием файла формата отчета (см. рис. 5.26)

Навигация в БД

Use, Select

Позволяет осуществить выбор среди нескольких открытых файлов БД текущего

Go, Skip

Изменяет положение указателя текущей записи путем прямого перехода к записи или путем пропуска некоторого числа записей

Set Relation To

Устанавливает связь двух файлов БД так, что при перемещении указателя записи в основном файле синхронно перемещается указатель в зависимом

Работа с массивами

Gather From

Используется для переноса данных из массива в файл данных. Элементы массива переносятся, начиная с первого элемента массива в соответствующие записи файла данных

Scatter To

Используется для перенесения данных из текущей записи файла данных или из переменной памяти в массив. Поля текущей записи переносятся, начиная с первого поля записи в соответствующие элементы массива

Рассмотрим далее некоторые из этих команд, в соответствии с их назначением.

Команды работы с файлами данных (файловые команды)

Здесь могут быть выделены (табл. 5.9):

• непроцедурные команды, которые действуют на файл в целом, причем теоретически одной командой могут быть обТаблица 5.9. Основные файловые команды

Команда

Результат выполнения

Непроцедурные команды

Append

From

Копирует записи из <Файла> и добавляет их в текущий файл данных.

For | while определяют условие, которое должно выполниться для копирования записи

Average

Вычисляет среднее значение числовых полей, указанных в ссписке полей файла> (см. рис. 5.9)

Browse

Выводит из файла данных на дисплей до 20 записей. Если в записи содержится так много полей, что они не могут поместиться на экране, то Browse выводит только те поля, которые помещаются. Остальные поля можно увидеть, прокручивая экран вправо и влево с помощью мыши или клавиши <ТаЬ>.

В режиме Browse можно редактировать содержимое полей (см. рис. 5.11)

Calculate

Вычисляет значения, используя стандартные финансовые и статистические функции, например, Avg (<числовое выражение >) — среднее значения выражения

Copy

Копирует файл данных или его часть в <Файл>

Copy To Array

Копирует в массив данные из полей файла данных. Для каждой записи файла данных первое поле сохраняется в первом элементе массива, второе поле — во втором и т. д.

Count

Считает число записей активного файла данных, которые соответствуют определенному условию (см. рис. 5.9)

Delete

Помечает указанные записи на удаление. Если Delete используется без номера записи, то на уничтожение помечается текущая запись

Edit

Загружает экранный редактор записей FoxPro (см. рис. 5.5)

List

Выдает содержимое файла данных (см. рис. 5.5)

Locate

Команда находит первую запись, соответствующую условию

Replace

Помещает в указанное поле новое значение. Можно одновременно заменить значения в нескольких полях, указав список полей и нужных значений

(<Поле> With <Выражение>)

Report

Form

Команда Report Form использует файл с формой отчета (созданный ранее командой Create Report — см. рис. 5.24) для создания отчета. Предполагается, что имя файла формата имеет расширение .frx, если не указано другое

Процедурные команды

Go или Goto

Команды устанавливают указатель записи на нужную запись. Go тор переместит указатель в начало файла данных, a Go Bottom — в конец (см. рис. 5.6)

Skip

Перемещает указатель активной записи текущего файла. Если отсутствуют какие-либо параметры, то перемещение указателя осуществляется на одну запись вперед

работаны вообще все записи файла (если все они удовлетворяют указанным в команде условиям). Примерами являются команды Edit, Replace, Report, Сору и др.;

• процедурные, которые выполняют элементарное действие над файлом (команды Skip, Go).

Общий синтаксис непроцедурных файловых команд:

Здесь:

  • • <Интервал> (Scope — охват или диапазон) позволяет указать область действия <Команды> для работы с определенными записями в текущем файле данных и может быть определен следующим образом:
    • — АН — команда выполняется для всех записей в файле данных;
    • Next <п> — команда выполняется для области записей, которая начинается с текущей записи и завершается записью с номером <п>;
    • Next 1 — команда работает с текущей записью;
    • Record <п> — работает с записью файла данных, имеющей физический номер <п>;
    • Rest — работает с областью записей, которая начинается с текущей записи и завершается последней записью в файле;
  • while позволяет <Команде> работать с записями файла данных, пока <Логическое выражение-1> оценивается как истинное. Выполнение <Команды> прекращается, если встречена запись, не соответствующая слогическому выражению-1> и все другие оставшиеся записи файла данных не обрабатываются;
  • For — <Команда> распространяется только на записи, удовлетворяющие слогическому выражению-2>. Каждая запись в файле данных проверяется с помощью выражения For. Оператор интервала и выражения For, While могут быть использованы в одной и той же команде FoxPro. Если заданы оба выражения For и while, то while имеет более высокий приоритет;
  • Fields сСписок полей файла>; указывает перечень полей файла данных, на которые распространено действие данной команды (см. рис. 5.7, а, команда List);
  • From — источник входной информации для команды, если необходимо — файл или массив (например, команда Append From);
  • То — контейнер записи результата, если необходимо — файл, массив, переменные и пр. (например, команда Сору То).

Примеры команд

позволяет выбрать для редактирования записи с мужчинами, родившимися после 1985 г.

должна будет выбрать для редактирования записи, пока год рождения в них равен 1985 г.

Как только появится 1987 или 1986, работа команды завершится. Очевидно, все это имеет смысл только в том случае, если записи отсортированы по году рождения или включен соответствующий индекс. Кроме того, указатель текущей записи должен быть установлен на первую запись с годом рождения 1985 (например, командой Seek 1985).

Просмотр данных с использованием диалоговых команд. Команда ? может применяться для вывода информации из файла данных и оперативной памяти. Рассмотрим несколько примеров «навигационных команд» и их результатов (рис. 5.6).

Рис. 5.6. Некоторые операции с файлом данных и наблюдение за ними с помощью диалоговых команд:

/ — открытие файла Person; 2 — вывод значений функций; 3 — вывод значений полей; 4— значение функции Bof () (начало файла); 5 — шаг «назад на одну запись»; 6 — шаг «вперед на две записи»; 7 — переход в конец файла; 8 — значение функции Eof () (конец файла); 9 — шаг «вперед на одну запись»

Здесь изображено рабочее поле экрана (слева) и окно командных строк (справа). Соответствие команд и отображаемой информации задается стрелками:

  • • команда Use открывает файл данных Person U);
  • • командой ? просматриваются значения функций (2), определяющих номер текущей записи RecnoO и общее число записей в файле Reccount ();
  • • просматриваются значения полей текущей записи (3);
  • • функция Bof () имеет значение . f. (false), это говорит о том, что начало файла (Begin Of File) не достигнуто (4);
  • • командой Skip -1 делается попытка «шагнуть за начало файла» (5), что приводит к установке Bof() в значение . t. (true);
  • • командой Skip 2 осуществляется переход к 3-й записи (б);
  • • командой ? просматриваются значения функций (2) и значения полей записи (J);
  • • командой Go Bottom задается переход к последней записи файла (7);
  • • командой ? просматриваются значение функции Recno (), а также значения полей текущей записи;
  • • функция Eof () имеет значение . f. (false), это означает, что конец файла (End Of File) не достигнут (