Вывод в консоли осуществляется функциями объекта (класса) TextWindow. Обычно он начинается с верхней левой позиции, координаты которой (0;0).
Мы можем выводить текст в TextWindow, используя функции TextWindow.Write() и TextWindow.WriteLine(). Функция TextWindow.WriteLine() также добавляет перевод на новую строку, чтобы поместить курсор в начало следующей строки.
При этом обе функции выводят текст в том месте, где в данный момент расположен курсор. Курсор при этом автоматически смещается в конец введенного текста.
Есть 2 свойства TextWindow, которые можно использовать для управления позицией курсора, это TextWindow.CursorLeft и TextWindow.CursorTop. Используя их, мы можем получить или установить позицию курсора.
В TextWindow 80 столбцов и 25 строк (по умолчанию). Свойство CursorLeft начинается со столбца 0 и может принимать максимальное значение — 79 (последний или 80-й столбец). CursorTop также индексируется с 0 до 24 (или больше).
Мы можем использовать эти свойства для различных задач. Самое простое, что можно сделать — просто выровнять столбцы данных, как это показано в следующем примере:
For i =1 To 20
TextWindow.CursorTop = i-1
For j = 1 To 5
TextWindow. CursorLeft = (j-1)*80/5
TextWindow.Write("Стр "+i)
TextWindow.CursorLeft = (j-1)*80/5+8
TextWindow.Write("Ст. "+j)
EndFor
EndFor
TextWindow.WriteLine("")
Скопируйте этот код в среду разработки MS Small Basic и запустите. В консоли вы увидите красивые столбцы с данными.
До появления графического оконного интерфейса MS Windows все программы использовали в качестве интерфейса экран MS DOS — консоль аналогичную TextWIndow в Small Basic.
Всё то же самое можно делать, используя TextWIndow с применением свойств CursorLeft и CursorTop для изменения местоположения курсора при работе программы. Вы можете таким образом стирать текст в любом месте консоли, выводить новый текст в любое место и т.п.
Такой вид интерфейса все еще часто используется для коммерческих приложений ввода-вывода текстовых данных (например, в программах бронирования авиабилетов), поскольку этот интерфейс очень прост, надежен, требует минимум ресурсов и может быть очень эффективным при работе — даже без использования мыши.
В следующем примере создан экран ввода данных, где можно ввести имя, фамилию и возраст. Для перехода используется клавиша «Ввод» («Enter»). Ввод завершается переходом на поле ввод и нажатием клавиши «Y».
While (Text.ConvertToLowerCase(accept ) <> "y")
NameForm()
EndWhile
TextWindow.Clear()
TextWindow.WriteLine(firstName+" "+lastName+" is "+age)
Sub NameForm
TextWindow.Clear()
TextWindow. CursorLeft = 35
TextWindow. CursorTop = 0
TextWindow.Write("ФОРМА ВВОДА ДАННЫХ")
TextWindow. CursorLeft = 0
TextWindow. CursorTop = 2
TextWindow.Write("ИМЯ :")
TextWindow. CursorLeft = 0
TextWindow. CursorTop = 4
TextWindow.Write("ФАМИЛИЯ :")
TextWindow. CursorLeft = 0
TextWindow. CursorTop = 6
TextWindow.Write("ВОЗРАСТ :")
TextWindow. CursorLeft = 40
TextWindow. CursorTop = 6
TextWindow.Write("ВВОД (Y)")
TextWindow. CursorLeft = 15
TextWindow. CursorTop = 2
firstName = TextWindow.Read()
TextWindow. CursorLeft = 15
TextWindow. CursorTop = 4
lastName = TextWindow.Read()
TextWindow. CursorLeft = 15
TextWindow. CursorTop = 6
age = TextWindow.ReadNumber()
TextWindow. CursorLeft = 55
TextWindow. CursorTop = 6
accept = TextWindow.Read()
EndSub
Как видите, это довольно простой и эффективный способ организации интерфейса ввода-вывода вашей программы, который вы можете легко использовать.
Поделиться: