Язык программирования FoxBASE

 

Язык является строко-зависимым и регистронезависимым. Содержит большое количество команд и функций, часто дублирующих друг друга (в основном в целях совместимости с другими СУБД). Некоторые команды одинаковы даже по названию (например, SELECT ). Язык истинно структурный, поддерживает аппарат процедур и функций, а также механизм макроподстановок. Использует многомерные массивы и функции массового копирования данных, однако не работает с множествами. Областью вывода по умолчанию является фон главного окна программы (как продолжение традиции DOS -версии).

Некоторые правила языка :

1) кириллица может быть использована лишь в символьных строках и примечаниях;

2) ограничителями строковых констант могут быть как кавычки, так и апострофы;

3) символ примечаний && или * ;

4) оператор вывода на главное окно – команда ? или ?? (в первом случае вывод с новой строки, во втором – с текущей позиции);

5) Ввод и вывод даты:

MyBirthDate ={^1969-08-23}

Set date german

? MyBirthDate

6) Использование макроподстановок

N = ”Date()”

M = ”&N+7”

? M && выводится текст Date()+ 7

? & M && выводится текущая дата, увеличенная на 7 (дней)

? ”& M ” && выводится текст Date ()+7

Команды могут вводится интерактивно или запускаться программно. Структура команд:

<Имя команды> [<границы>] [<список выражений>] [ FOR < условие >] [ WHILE < условие >]

Здесь:

<границы> – область действия команды – ключевые слова: ALL (все записи), REST (вниз от текущей), NEXT < n > (следующие n записей, начиная с текущей), RECORD < n > – только для записи с номером n .

FOR <условие> – выполнение команды только для записей, отвечающих условию.

WHILE <условие> – выполнение команды до тех пор, пока не перестанет выполняться условие.

Пример программы поиска:

Clear ALL && очистка экрана, удаление пользовательских переменных и массивов, окон и меню

Use Phonebook && выбираем уже созданную базу данных со списком телефонов

nRec = Reccount () && подсчитываем число записей в базе (переменную объявлять не надо)

? nRec && выводим полученную цифру на экран

for i =1 to nRec do && организуем цикл по записям

goto i && прямое позиционирование на запись с номером i

if Alltrim ( phone )='555555' && сравниваем поле с именем phone со строковой константой

display && если условие выполнено, показываем запись на экране

endif

endfor

назад главная вперед