4) Команда вывода ?/??
Эта команда является самой простой, но во многих случаях - самой удобной командой вывода:
• ?/?? [<выр1> [PICTURE <вырС1>] [FUNCTION <вырС2>]]
[AT <BыpN>] [,<выр2> ...] Опции команды:
PICTURE/FUNCTION применяются для задания шаблонов и кодов управления выводом, которые перечислены при описании команды @... SAY.. .GET. Здесь введен дополнительный форматный код V<n>. Он организует вывод выражения в несколько строк с ограничением числа позиций по горизонтали <n> столбцами. Если значение <n> меньше длины слова, последнее "ломается" у правой границы, если нет - слова переносятся целиком. Этот код особенно удобен для вывода мемо-полей. При определении форматных функций в <вырС2> знак "@" не нужен.
AT - номер столбца <BыpN>, с которого должен начинаться вывод.
Команда ? выводит результаты выражений с новой строки, а ?? осуществляет выдачу данных на текущей строке в текущей колонке экрана.
Примеры:
? 'ВЕС =',3*2+0.5 && ВЕС = 6.50
?? 'килограмм' && ВЕС = 6.50 килограмм
? 1/3 PICTURE('#.##') AT 4 && 0.33 (с 4-й позиции)
? 'Оля' FUNCTION ‘V1' AT 25, 'Покровская' FUNCTION 'V4' AT 34
О Покр
л овск
я ая
Имя (Оля) выведено в одну колонку в 25-й позиции, фамилия (Покровская) в четыре колонки с 34-й позиции.
Используя значение функции 1I для каждой из переменных, включенных в команды ?/??, легко организовать вертикальный вывод слов, причем следующая команда ? осуществит вывод ниже самого нижнего символа, выданного предыдущей командой. Это очень полезно при печати широких таблиц - заголовки колонок можно выводить в несколько строк.
При выводе элементы данных, перечисленные в команде ?/??, будут отделены друг от друга одним пробелом. Если этого нужно избежать, можно применить команду
• SET SPACE OFF
По умолчанию SET SPACE ON.
Перенаправление вывода информации осуществляется командами
• SET PRINTER ON/OFF
Установка команды SET PRINTER ON вызывает направление данных на принтер,. SET PRINTER OFF - отмену (эта форма команды действует по умолчанию).
Данные можно направить и в другое место, используя команду
• SET PRINTER TO [<файл> [ADDITIVE]/<порт>]
В частности, можно направить выдачу в указанный <файл>. Никакое расширение имени файла по умолчанию не подразумевается. При этом, если включено слово ADDITIVE и файл с таким именем уже существует, информация будет добавлена в конец файла. Если нет - файл будет переписан.
В качестве портов вывода можно указать любой из параллельных (LPT1, LPT2 или LPT3) или последовательных портов (СОМ1 или COM2). По умолчанию подразумевается <порт> - PRN, т.е. принтер.
Пример. Вывод данных в файл S.TXT.
SET PRINTER ON && Разрешение вывода
SET PRINTER TO s. txt && Назначение файла вывода S.ТХТ
? <генерация данных>
SET PRINTER TO && Закрытие файла
SET PRINTER OFF && Запрещение вывода
Команда вывода text
Структура
• TEXT
<сообщения>
ENDTEXT
удобна для вывода значительных объемов текста, который выдается на экран/принтер (командой SET PRINTER ON) без всяких изменений <сообщений>, которые могут состоять из нескольких строк (например, сложные заголовки таблиц).
Команда вывода \
Команда
• \ и \\ <строка текста>
выводит <строки текста>. Команда \ после вывода строки осуществляет переход в начало следующей строки, а команда \\ - нет. Команды похожи на команды ? и ??, но в некоторых отношениях они отличаются. <Строки> не нужно заключать в апострофы/кавычки. Среди текста выводимых данных могут содержаться также и выражения, которые окружаются разделителями « и ». При выводе эти выражения вычисляются.