|
-
Функции приема\посылки
данных удаленному хосту.
Используется не блокирующая модель
работы, это значит что скрипт имеет
цикл обработки событий, ожидая их с
помощью функции WaitEvent. Операции
отправки данных работают асинхронно.
Операции чтения данных из соединения
могут возвращать пустую строку, не
ожидая прихода новых данных.
|
|
|
|
|
Выполняет разрыв установленного
TCP соединения не прерывая выполнения
скрипта. Но при следующем обращению к
функциям передачи данных по TCP соединению
выполнение скрипта прервется. Выполнение
скрипта так же автоматически завершается
если удаленная сторона закрывает
соединение во время операции передачи
данных.
function Recvch: string;
Возвращает строку длиной 1 символ
принятую с удаленного хоста. Если данных в
очереди нет возвращается пустая строка
без ожидания поступления данных. Если
соединение было по каким либо причинам
разорвано выполнение скрипта завершается.
function Recv: String;
Возвращает все данные принятые с
удаленного хоста в виде строки. Если
данных в очереди нет возвращается пустая
строка без ожидания поступления данных.
Если соединение было по каким либо
причинам разорвано выполнение скрипта
завершается.
function Recvln: String;
Возвращает строку до символов #13 #10
из очереди чтения, если таких символов нет
то возвращается пустая строка. Если
соединение было по каким либо причинам
разорвано выполнение скрипта завершается.
procedure Send(s: string);
Отсылает строку s удаленному
хосту. Если соединение было по каким либо
причинам разорвано выполнение скрипта
завершается.
procedure SetEcho(EchoOn:integer);
Если EchoOn = 1 то включает эхо
операций приема данных - при любые данные
принимаемые будут автоматически
отсылатся на хост, полезно для эмуляции
различных серверов терминалов. Если EchoOn = 0
то эхо отключается.
Возвращает строку, установленную
при последнем вызове SendBroadcast из любого
скрипта в пределах этого терминала,
работающего в серверном режиме, позволяет
скриптам, работающим в различных потоках
обмениваться данными.
function GetInputText(var s1,s2:
string): integer;
В s1, s2 возвращается текст из
нижних полей ввода терминала. Сама функция
возвращает битовую маску в которой
установлен бит 0 если включена галка CRLF и
бит 1 если включена галка Log.
procedure Gotoxy(x,y,rlt: integer);
Если rlt=0 то устанавливает курсор в
абсолютную позицию x,y. Если rlt=1 то
переводит курсор на x,y позиций
относительно текущей позиции.
Очищат линию от позиции курсора
до конца строки не меняя позиции курсора.
Очищает экран, устанавливает
курсор в левый верхний угол (0;0)
function Readln(question: string): string;
Выводит диалоговое окно с текстом
question и полем ввода текста. Возвращает
введенный текст.
Устанавливает строку s, которую
затем сможет получить любой скрипт
вызовом GetBroadcast. Рассылает всем скриптам
кроме текущего событие #7.
procedure SetInputText(i:integer; s:
string);
Устанавлиает в поле ввода
указанный текст. Если i=0 То
устанавливается текст в 1м поле, если i=1 то
устанавливается текст во 2м поле.
Устанваливает общий цвет фона
окна терминала.
Позволяет сменить шрифт
используемый в терминале. По умолчанию
используется Lucida Console.
Устанавливает количество
символов в строке виртуального экрана
терминала.
procedure SetOemCP(i: integer);
Если i=1 то включается OEM'овская
кодировка (DOS'овская), иначе используется
таблица ANSI.
procedure SetStatus(s: string);
Устанавливает текст в строке
статуса внизу.
procedure TextFont(i: integer);
i
представляет собой битовую маску. Учтите
что не со всеми шрифтами это работает.
Бит
0 - устанавливается жирный шрифт
Бит
1 - устанавливается наклонный шрифт
Бит
2 - устанавливается подчеркивание
Бит
3 - устанавливается перечеркивание.
Устанавливает текущий RGB цвет
фона текста в i.
procedure TextColor(i: integer);
Устанавливает текущий RGB цвет
текста в i.
function WhereX: integer;
Возвращает текущую позицию
курсора по горизонтали
function WhereY: integer;
Возвращает текущую позицию
курсора по вертикали
procedure Write(s: string);
Выводит текст в текущую позицию
курсора
procedure Writeln(s: string);
Выводит текст в текущую позицию
курсора. Дополнительно переводит позицию
на начало новой строки.
Возвращает число 2 для скрипта
работающего в терминале.
procedure SetTimer(i:integer);
Включает таймер, который шлет
скрипту через каждые i мсек событие №8.
Если i=0 то таймер отключается.
procedure SyncScript(I: Longint);
Используйте эту функцию для
синхронизации с другими скриптами. Если I=1
- скрипт входит в критическую секцию, если 0
-выходит. Все действия в критической
секции должны занимать минимальное время
function WaitEvent(var v1,v2: integer):
integer;
Основная функция цикла обработки
событий. Ожидает событие, возвращает его
код и 2 опциональных параметра.
Событие |
Когда
происходит, что делать |
Параметр v1 |
Параметр v2 |
0 |
Соединение было
разорвано |
- |
- |
1 |
С удаленного
хоста чтото пришло. Новые данные можно
получить вызовом Recv, Recvln,
Recvch |
- |
- |
4 |
Юзер нажал или
отпустил клавишу когда фокус ввода
находится в окне текста. |
Если установлен
бит 7 то клавиша была отпущениа, иначе
нажата |
Виртуальный код
клавиши |
5 |
Юзер ввел
символ когда фокус ввода находится в
окне текста. |
- |
Код символа |
6 |
Юзер нажал Enter в
одном из полей ввода внизу. См GetInputText,
SetInputText |
- |
0
если ентер был нажат в первом поле
1
если ентер был нажат во втором поле
|
7 |
Какой то скрипт
вызвал SendBroadcast. Можно
получить эту строчку вызовом GetBroadcast |
- |
- |
8 |
Событие таймера.
См SetTimer |
- |
- |
function NV_CNAME: string;
Возвращает имя своего компьютера.
Возвращает IP адрес удаленного
клиента.
function NV_PORT: integer;
Возвращает порт на который
подключен клиент. (Поле Port)
Возвращает IP адрес удаленного клиента в
сетевом порядке байтов.
|