Язык программирования 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 |