FRTScript - Справка
Дата генерации справки 11.08.06 19:25
Версия FRTS 1.061
Версия скрипта 'help.fss' сгенерировавшего справку: 1.09
<<<--- 050. Как пользоваться этой справкой --- [i]
Файл справки пакета FRTScript генерируется скриптом fss\help.fss
!!! Обратите внимание
Автоматически сортируется только оглавления
и индекс в конце файла.
Разделы справки вставляются блоками не последовательно !
поэтому для удобства перехода к оглавлению
перед заголовком каждого раздела
вставляется ссылка на оглавление в виде '<<<'
При добавлении в пакет новых библиотек расширения
запустите файл 'makehelp.bat' для генерации актуальной справки
файл 'frts.htm' будет обновлен.
При описании команд FRTScript
после названия команды указывается пара чисел
в формате '-X +Y'
где X - количество значений забираемых из стека
(входные параметры)
Y - количество значений помещаемых в стек
(результаты выполнения команды)
Передаваемые команде и возвращаемые
по выполнению команды значения
обозначаются в описании как:
in1 in2 in3 ... command out1 out2 out3
где нумерация для удобства дана в порядке следования
в строке кода а не по положению в стеке.
Например при передаче команде двух значений
строка кода будет описана так:
in1 in2 command
при этом на момент выполнения команды
на вершине стека будет находиться значение in2
В конце файла справки находятся два индекса
'Общий индекс' и 'Индекс команд'
рекомендую ;)
Напоминаю про удобство использования кнопки "назад"
Вашего бровзера.
<<<--- 100. Краткое вступление --- [i]
FRTScript это пакет программ
обьединенных вокруг интерпретатора языка FRTS
и предлагающих различные интерфесы и расширения
этого интерпретатора.
Изначально FRTS создавался как язык
для парсинга и конвертирования текста
соответственно ядро языка составили функции
работы с текстовыми строками.
Вторая задача это встраивание языка в
программы для автоматизации типовых операций
и здесь сама программа может представлять
собственно только интерфейс а функциональность
будет обеспечена возможностями FRTS
и библиотек расширения.
Одна из задач FRTScript использование языка
в командной строке для управления той или иной
программой прямо во время выполнения или
из пакетного файла
(скрипта - текстового файла с кодом FRTS)
Это тоже вариант встраивания с возможностью
организации в интерфейсе программы
'своей командной строки' и доступными из нее
внутренними (для данной программы)
и внешними (расширения FRTS) командами.
Также рассматривался подход применяемый
при создании командных файлов (*.bat)
это связывание различных программ
и здесь упор был на идею возможности
обмена информацией между программами.
Малые размеры и простота установки
это тоже задача :)
Подробнее о языке FRTS см. в разделе:
'FRTScript - Описание языка'
Предлагаемый интерпретатор FRTS
распространяется свободно.
Подробнее о условиях распространения
см. в разделе:
'Лицензия на использование и распространение'
FRTScript реализован в виде интерпретатора
и поставляется как библиотека DLL.
Пакет FRTScript представляет собой набор программ
расширяющих стандартный набор команд FRTS
и программ обеспечивающих прикладные интерфейсы.
Откуда появилось название языка: FRTScript ?
Автор пакета FRTS в свое время был поражен
краткостью и простотой языка Форт (FORTH)
FRTScript использует большинство идей Форт-систем
и идет в направлении упрощения языка.
Абревиатуру FRTS можно расшифровать как:
"Фортоподобный скрипт"
<<<--- 200. FRTScript - Описание языка --- [i]
FRTScript (ЭфАрТиЭс) - расширяемый стековый язык
использующий oбpaтнyю пoльcкyю (постфиксную) зaпиcь,
при которой oпepaнды пpeдшecтвyют oпepaции.
Хотя oбpaтная пoльcкая (постфиксная) зaпиcь
непривычнa и мoжeт пoкaзaтьcя нeyдoбнoй,
(когда мы сначала пишем операнды,
а потом знак операции. Например:
операция 5+6 в этой записи выглядит как ' 5 6 N+ ')
oнa существенно уменьшает затраты
нa opгaнизaцию вызoвoв пoдпpoгpaмм
и внутреннюю работу интерпретатора.
Основные правила FRTScript
----------------------------
Код FRTScript представляет собой текст
состоящий из слов и разделителей.
Разделителями слов являются пробелы
и символы конца строки CrLf (ASCII 13,10).
СЛОВО - не содержащий пробелов текст
или текст в двойных кавычках
(который может содержать пробелы)
Каждое 'СЛОВО' может трактоваться интерпретатором
как 'КОМАНДА' или как 'ТЕКСТ'(данные).
'КОМАНДА' - Выполняется
Если интерпретируемое слово не соотв.
внутренним и внешним командам то далее это слово
трактуется как 'ТЕКСТ' (данные - текстовая строка).
Команды делятся на три группы:
Внутренние команды (команды ядра)
Внешние команды (библиотеки расширения FRTS).
Внешние команды 'родительской' программы
(программы загрузившей интерпретатор FRTS
являющейся интерфейсом пользователя)
'ТЕКСТ' - Добавляется в 'СТЕК'(См.ниже)
и рассматривается далее как данные.
Желательно данные всегда заключать в двойные кавычки.
Это позволит интерпретатору однозначно трактовать
'СЛОВО' как данные.
При необходимости вставить текст соотв.
одной из команд - заключаем текст в двойные кавычки.
(Пример: input - команда "input" - строка данных)
Для вставки текста содержащего пробелы
заключаем строку в двойные кавычки.
(Пример: "строка из четырех слов")
Для вставки в текст символа " вставляем ""
(Пример: "username=""Василий"""
в СТЕК помещается строка: ' username="Василий" ' )
'СТЕК' - основное хранилище данных
Данные помещаются в СТЕК последовательно.
Представим стопку книг.
Каждая новая текстовая строка помещаемая в СТЕК
соответствует новой книге на вершине стопки.
Извлечение данных происходит в обратном порядке
(в начале снимаем верхнюю книгу...)
Различные команды могут забирать данные из СТЕКа
и после своего выполнения добавлять
новые данные в стек.
Вот собственно и всё что необходимо
знать для написания программ
на языке FRTScript :)
Пример кода FRTS: ' 214 5 n+ prn '
Поместить в стек строку "214"
Поместить в стек строку "5"
Взять два значения с вершины стека,
сложить как числа и результат поместить в стек
Вывести одно значение с вершины стека
Код приведенного выше примера будет выполнен
но для однозначного указания интерпретатору
'где команды а где данные'
будет правильнее записать код так:
' "214" "5" n+ prn '
в данном примере с использованием цифр
это не так наглядно но следующий код
обьединяет две строки и здесь потенциально
возможное 'пересечение' кода и данных
предотвратят именно двойные кавычки:
' "My" " code" + prn '
Результат вывода строка: 'My code'
<<<--- 210. FRTScript - Установка --- [i]
Скачать файл 'frts.zip'
c http://kirbiba.narod.ru
Распаковать архив в любую папку
например в папку 'C:\prog\frts\'
Готово
Запуск консоли FRTS
командная строка: 'frts.exe'
Зарегистрировать расширения файлов FSS,
дополнить контекстное меню Explorera
и прописать пути для запуска
FRTS из любой папки
можно выполнив скрипт: 'frtsreg.fss'
командная строка: 'frts.exe fss\frtsreg.fss'
или
выполнить командный файл 'reg.bat'
При установке новых библиотек или любых других
изменениях текущей конфигурации пакета FRTScript
Запустите 'makehelp.bat' и актуальная справка будет
создана в файле 'frts.htm'
<<<--- 300. Программа frts.exe - FRTScript консоль --- [i]
Программа frts.exe представляет собой консоль
доступа к интерпретатору FRTS (frts.dll)
Формат запуска:
frts.exe [filename.fss] [/code:FRTScode]
[/f:filename2.fss] [/r][/d]
[/stk:string] [/prestk:string]
где Filename.fss - имя файла содержащего FRTScript-код
/code:text - код FRTS
/f:filename2.fss - выполнить файл
(соответствует FRTS коду "filename.fss loadcode")
файл filename2.fss будет выполнен после
файла Filename.fss
/stk:string - поместить строку в стек
(нет необходимости указывать двойные кавычки)
(вся указанная строка будет помещена как одно значение)
(! крайние пробелы не обрезаются !)
/prestk:string - поместить строку в стек перед
выполнением всех остальных параметров
/r - не завершать программу после выполнения скрипта
/d - вывести отладочную информацию
Параметры могут быть указаны многократно
и их выполнение будет последовательным в порядке указания
(кроме параметра /prestk: значение которого будет помещено
в стек перед выполнением остальных параметров).
Например:
'frts.exe t1.fss /code:25 n+ .-/f:f2.fss/f:f3.fss/code:53 n+'
в этом примере выполнение файлов и кода
будет происходить последовательно и последними
командами будут ' 53 n+ '
'frts.exe t1.fss /code:25 n+ .-/prestk:2003'
1.поместить в стек '2003'
2.выполнить код из файла t1.fss
3.выполнить код '25 n+ .-'
После запуска frts.exe появляется следующее:
---------------------------------------------------------------------
FRTS Console n.nn (C) YYYY KirBIBA - Koenig - http://kirbiba.narod.ru
frts.exe [filename.fss] [/code:FRTScode] [/f:filename2.fss] [/r][/d]
[/stk:string] [/prestk:string]
frts.dll ver:n.nnn
00 >
---------------------------------------------------------------------
'00 >' - означает количество данных в стеке 0,
'жду ввода команд'.
Команды вводятся по общим правилам
- разделитель один или несколько пробелов.
Для выхода - вводим пустую строку и при появлении
запроса подтверждаем нажатием 'Y'.
<<<--- 500. Библиотеки расширения FRTS --- [i]
Библиотеки расширения FRTS представляют
собой файлы c именами формата: ft_*.dll
Для загрузки конкретной библиотеки используется
внутренняя команда 'LoadLib' языка FRTS
имя загружаемой библиотеки
берется с вершины стека.
Имя библиотеки можно указывать сокращенно..
Например: ' "txt" LoadLib '
загрузит библиотеку ft_txt.dll
Сразу после загрузки библиотеки количество
допустимых команд системы увеличится.
По действующему правилу добавленные команды
содержат имя библиотеки расширения.
(Например: для библиотеки ft_txt.dll
команды будут начинаться с 'txt.' )
Последовательно загрузив несколько необходимых
библиотек мы получаем среду содержащую необходимые
для нашей конкретной задачи команды.
В последние версии FRTS
добавлена команда: ALL
После ее выполнения
требуемые библиотеки расширения
загружаются автоматически по мере надобности.
(Например:
' all time.t "c:\temp\now.txt" txt.save '
загрузятся библиотеки ft_time.dll и ft_txt.dll
а в папке c:\temp\ появится файл now.txt
в котором будет сохранена строка соотв.
текущему времени )
Подробнее см. описание команды 'ALL'
Подразумевается что все библиотеки расположены
в корне папки содержащей файл frts.dll
<<<--- 800. Лицензия на использование и распространение --- [i]
- Все авторские права принадлежат автору.
- Граждане стран бывшего СССР имеют право
использовать данную версию FRTScript бесплатно
для любых вариантов использования.
- Автор оставляет за собой право не распространять
действие этой лицензии на некоторые прилагаемые библиотеки.
- Пакет FRTScript распространяется свободно.
Ни одно частное лицо или организация не может
брать плату за распространение FRTScript
без письменного разрешения автора.
- ПАКЕТ ПРОГРАММ FRTScript ПОСТАВЛЯЕТСЯ ПО ПРИНЦИПУ "AS IS".
НИКАКИХ ГАРАНТИЙ НЕ ПРИЛАГАЕТСЯ И НЕ ПРЕДУСМАТРИВАЕТСЯ.
ВЫ ИСПОЛЬЗУЕТЕ ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НА СВОЙ РИСК.
АВТОР НЕ БУДЕТ ОТВЕЧАТЬ НИ ЗА КАКИЕ ПОТЕРИ ИЛИ ИСКАЖЕНИЯ ДАННЫХ,
ЛЮБУЮ УПУЩЕННУЮ ВЫГОДУ В ПРОЦЕССЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕПРАВИЛЬНОГО
ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
- Установка и использование FRTScript означает, что вы понимаете положения
настоящего лицензионного соглашения и согласны с ними.
<<<--- 850. Обратная связь --- [i]
Спасибо за внимание к моей скромной работе :)
<<<--- 220. FRTScript Список внутренних команд --- [i]
Формат строк описания команд
см.раздел: 'Как пользоваться этой справкой'
Внутренние команды (команды ядра FRTS)
за исключением команд '.' и '.-' не содержат
символа 'точка'.
Внешние команды (расширение FRTS библиотеками ft_*.dll)
добавляют команды каждая из которых
начинается с имени библиотеки расширения.
(Например: команды добавляемые библиотекой ft_txt.dll
начинаются с 'txt.'
'txt.load' 'txt.save' ... )
Внешние команды добавляемые 'родительским' приложением
(программой загрузившей FRTS)
начинаются с 'main.'
Правило для родительской программы не является
обязательным и может быть нарушено.
+CR -1 +1
Добавляет к строке символ CR (ASCII 13)
CR -0 +1
Помещает в стек строку из одного символа CR (ASCII 13)
+CRLF -1 +1
Добавляет к строке символы CRLF (ASCII 13,10)
CRLF -0 +1
Помещает в стек строку из двух символов CRLF (ASCII 13,10)
STK- -1 +0
Удаляет из стека одно значение
Пример: "Петр" "Сергей" stk-
(Петр остался в одиночестве :)
STK-2 -2 +0
Удаляет из стека два значения
Пример: "Валентина" "Петр" "Сергей" stk-2
(Валя совсем одна)
STK-ALL -* +0
Удаляет из стека все значения
STKCOUNT -0 +1
Добавляет в стек значение = количество записей в стеке
( -0 +0
Строка комментария
Все слова ограниченные круглыми скобками игнорируются
пример: 505 5 + . ( вывести сумму ) - обратите внимание !!!
пробелы с обоих сторон каждой круглой скобки обязательны !
Если не указать закрывающую круглую скобку - игнорируется весь текст до конца строки
) -0 +0
Закрывающая скобка строки комментария
+ -2 +1
Складывает два значения (как строки) и возвращает строку
DUP -1 +2
Добавляет в стек копию значения с вершины стека
+DUP -1 +1
Добавляет к строке на вершине стека ее копию
DUP2 -1 +3
Добавляет в стек две копии значения с вершины стека
+DUP2 -1 +1
Добавляет к строке на вершине стека две ее копии
NDUP -1 +1
Добавляет на вершину стека копию значения с позиции in1=1... (1-вершина стека)
SWAP -2 +2
Меняет местами два значения с вершины стека
+SWAP -2 +1
Забирает две строки с вершины стека, ко второй прибавляет первую (меняет местами)
результирующую строку помещает в стек
пример: "Иванович" "Сергей " +swap
оставит в буфере строку "Сергей Иванович"
OVER -2 +3
Продублировать второе сверху
Было x1 x2 ..будет x1 x2 x1
ONLY -2 +1
Оставить в первой строке только все символы
указанные во второй строке.
in1 - редактируемая строка
in2 - строка разрешенных символов
out1 - результат редактирования
ROLL -3 +3
Переставить три верхних значения
ROLL - x1 x2 x3 = x3 x1 x2
ROLLB -3 +3
Переставить три верхних значения
ROLLB - x1 x2 x3 = x2 x3 x1
TRIM -1 +1
Обрезать концевые пробелы
LTRIM -1 +1
Обрезать пробелы слева
RTRIM -1 +1
Обрезать пробелы справа
LEFT -2 +1
Отрезает часть строки p1 (указанное количество символов p2)
p2-символов слева
RIGHT -2 +1
Отрезает часть строки p1 (указанное количество символов p2)
p2-символов справа
CUTLEFT -2 +1
Отрезает часть строки p1 (указанное количество символов p2)
строка p1 минус p2-символов слева
CUTRIGHT -2 +1
Отрезает часть строки p1 (указанное количество символов p2)
строка p1 минус p2-символов справа
STRPRE -2 +1
Забирает две строки с вершины стека и возвращает строку
до указанной подстроки
Регистр символов игнорируется
пример: "ПроВерКа ВстаВкИ" "вер" STRPRE - результат "Про"
STRPOST -2 +1
Забирает две строки с вершины стека и возвращает строку
после указанной подстроки
Регистр символов игнорируется
пример: "ПроВерКа ВстаВкИ" "вер" STRPOST - результат "Ка ВстаВкИ"
STRSUB -3 +1
Вернуть подстроку из указанной позиции строки
in1 - исходная строка
in2 - подстрока разделитель
in3 - число позиция в исходной строке (для отрицательных чисел отсчет с конца строки)
Регистр символов учитывается !
примеры: "abc-X2def-X2501-X211" - исходная строка
dup "-X2" "2" STRSUB .- - результат "def"
dup "-X2" "4" STRSUB .- - результат "11"
dup "-X2" "-2" STRSUB .- - результат "501"
STRSUBCOUNT -2 +1
Вернуть количество подстрок в указанной исходной строке
in1 - исходная строка
in2 - подстрока разделитель
Регистр символов учитывается !
ASC -1 +1
Замена символа на последовательность
чисел соотв. ASCII коду символов.
Разделитель запятая
in1 - строка
out1 - строка результат 'n1,n2,n3,...'
пример: "qwert" asc
в стеке: "113,119,101,114,116"
CHR -1 +1
Замена числа на соотв. ASCII символ (0-255)
in1 - число или числа с разделителем запятая
Для генерации последовательности два числа
с разделителем тире 'n1-n2'
Для последовательности с шагом отличным от 1
формат 'n1-n2-nS' где nS-шаг
out1 - строка результат
пример: "33" CHR
пример: "35,65-68,120-100-5,13,10" CHR
REPLACE -3 +1
Замена указанной подстроки на новую подстроку
in1 - исходная строка
in2 - заменяемая подстрока
in3 - новая подстрока
Регистр символов учитывается !
out1 - строка результат
UCASE -1 +1
Изменить регистр символов на верхний
! внимание для правильной обработки символов кириллицы
кодировки OEM(866) См. OEM2CHAR CHAR2OEM
LCASE -1 +1
Изменить регистр символов на нижний
! внимание для правильной обработки символов кириллицы
кодировки OEM(866) См. OEM2CHAR CHAR2OEM
OEM2CHAR -1 +1
Перекодировка строки OEM-ANSI
Эти функции позволяют использовать кириллицу при вводе текста
как в консоли (кодовая страница (OEM)866) так и в
оконных диалогах Windows (кодовая страница (ANSI)1251)
!!! для правильной обработки символов кириллицы необходимо
приводить все строки к ANSI при этом для правильного отображения в консоли
после всех преобразований переводим строку в OEM
Пример: input oem2char ucase char2oem prn - это вариант для консоли
CHAR2OEM -1 +1
Перекодировка строки ANSI-OEM
N+1 -1 +1
Увеличивает на 1 значение на вершине стека
N-1 -1 +1
Уменьшает на 1 значение на вершине стека
N+ -2 +1
Складывает два значения (как числа) и возвращает результат
N- -2 +1
Разность двух значений (как числа) возвращает результат
N* -2 +1
Произведение двух значений (как числа) возвращает результат
N/ -2 +1
Деление первого значения на второе (как числа) возвращает результат
При делении на 0 = результат 0
N^ -2 +1
Возведение в степень
NMAX -2 +1
Забирает из стека два значения и сравнивая их как числа
возвращает наибольшее
NMIN -2 +1
Забирает из стека два значения и сравнивая их как числа
возвращает наименьшее
NUMBER -1 +1
Забирает из стека значение и интерпретируя строку как число
возвращает результат
пример: "21Count" number - оставит в стеке "21"
LEN -1 +1
Забирает из стека значение и возвращает длину строки
пример: ' "Count" len ' - оставит в стеке "5"
IF -3 +0
Выполнение по условию.
in1 - первое сравниваимое значение
in2 - второе сравниваимое значение
in3 - оператор может принимать следующие значения
'=' - равенство строк
'==' - равенство строк (c учетом регистра)
'<>' - строки не равны
'<<>>' - строки не равны (c учетом регистра)
'N=' - равенство чисел
'N<>' - числа не равны
'N>' - число больше
'N<' - число меньше
'N>=' - число больше или равно
'N<=' - число меньше или равно
пример: 205 5 n+ 210 "n=" if "Равно 210" .- endif
ENDIF -0 +0
Завершение выполнения по условию
ENDIFALL -0 +0
Завершение выполнения по всем условиям
. -1 +1
Вывод одного значения с вершины стека
PRN -1 +1
Вывод одного значения с вершины стека
.- -1 +0
Вывод одного значения с вершины стека
Значение будет удалено из стека
PRN- -1 +0
Вывод одного значения с вершины стека
Значение будет удалено из стека
PRNCR -0 +0
Вывод конца строки CrLf (символов ASCII 13,10)
NPRN -1 +0
Вывод одного значения из стека
P1 = число-позиция в стеке (1-ВершинаСтека ...)
Если P1 за пределами стека - на выходе пустая строка
PRNN -1 +1
Вывод одного значения с вершины стека без перевода строки
NPRNN -1 +1
Вывод одного значения из стека без перевода строки
P1 = число-позиция в стеке (1-ВершинаСтека ...)
Если P1 за пределами стека - на выходе пустая строка
PRNALL -* +*
Вывод всех значений из стека
NPRNALL -1 +0
Вывод указанного количества значений с вершины стека
Пример: ' 5 NPRNALL ' - Вывести 5 значений
INPUT -0 +1
Диалог с пользователем.
Ожидание ввода строки и результат в стек.
!!! Выполнение этой команды зависит от программы загрузившей
интерпретатор FRTScript (FRTS.DLL)
Если диалог с пользователем не предусмотрен - в стек помещается пустая строка
SUB -1 +0
Создание новой процедуры.
Имя процедуры берется из стека.
Все слова идущие после SUB (данные и команды)
не выполняются, а заносятся в специальный буфер.
Команда ENDSUB прерывает этот процесс и создает из значений накопленных в буфере
новую процедуру.
Вызов процедуры производится простым указанием ее имени.
Имя процедуры '#MAIN' зарезервировано - при попытке создания такой процедуры
появится сообщение об ошибке
При попытке создания процедур с одинаковыми именами
- последняя загруженная процедура заменяет 'старую'.
ВНИМАНИЕ! Старайтесь всегда указывать имя
для новой процедуры по правилам (в кавычках)
(Пример:
' abcd sub "hi" .- endsub ' - неправильно
' "abcd" sub "hi" .- endsub ' - правильно)
ENDSUB -0 +0
Завершает код процедуры
SUB ... ... ENDSUB
SUBINFO -0 +0
Выводит общее количество процедур
SUB? -1 +0
Выводит информацию о указанной процедуре
В качестве параметра передаем имя процедуры
SUB?? -1 +1
помещает в стек значение 1 если процедура
с таким именем существует иначе 0.
В качестве параметра передаем имя процедуры
SUB?CODE -1 +0
Выводит информацию о указанной процедуре
В качестве параметра передаем имя процедуры
кроме информации выводится и код процедуры
ENDCODE -0 +0
Весь текст после этой команды игнорирунтся
LOADLIB -1 +0
Подключить библиотеку расширения (ft_*.dll)
В качестве параметра передается имя библиотеки
Если библиотека уже загружена выводится сообщение
' "str" loadlib '- загрузить библиотеку ft_str.dll
(путь по умолчанию соотв. пути к frts.dll)
' "ft_str.dll" loadlib '- загрузить библиотеку ft_str.dll
(путь по умолчанию ...)
' "c:\temp\ft_abra.dll" loadlib ' - можно и так с указание полного пути
LIBINFO -0 +1
Поместить в стек информацию о загруженных библиотеках
ALL -0 +0
Включить режим автозагрузки библиотек расширения
в этом режиме нет необходимости использования
команды 'LOADLIB'
По умолчанию это режим выключен.
Работает автозагрузка только для библиотек
расположенных в папке местоположении файла frts.dll
ALLOFF -0 +0
Отключить режим автозагрузки библиотек расширения
LIBLOADED? -1 +1
Поместить в стек информацию о указанной библиотеке
В качестве параметра передается имя библиотеки
Результат 0-нет 1-загружена
LOADCODE -1 +0
Загрузить и выполнить код из файла
' "Cutlinks" LoadCode ' - выполняем 'Cutlinks.fss'
Если путь не указан - подставляется путь к \frts.dll
' "samp\prog1" LoadCode ' - выполняем '\samp\prog1.fss'
' "c:\temp\test.txt" LoadCode ' - выполняем c:\temp\test.txt
! После выполнения LoadCode в загруженном коде
'LoadCode' заменяется на 'NONE' и при повторном выполнении
процедуры игнорируется (т.к. фрагмент кода уже внедрен)
ADDCODE -1 +0
Выполнить значение стека как код
"5 2 n+ prn" AddCode - на выходе 7
Позволяет выполнять код скомпонованный "на лету"
ENDLINE -0 +0
Зарезервировано
NONE -0 +0
Зарезервировано
FRTSVER -0 +1
Помещает в стек номер версии используемого
FRTScript интерпретатора
GETPATH -0 +1
Помещает в стек путь к папке frts.dll
В версии 1.059
добавлена команда SUB??
В версии 1.061
исправлена ошибка автозагрузки библиотек
из папок с именами содержащими в названии точки
оптимизирован алгоритм автозагрузки библиотек
команда ALL теперь выполняется быстрее
<<<--- 890. FAQ - С чего начать? - примеры --- [i]
--------------------------
Пример 1
--------------------------
Первым делом посмотрим как
вывести обычный текст.
Запустим консоль FRTS
командная строка: 'frts.exe'
или 'ftree.exe' для открытия
интерфейса FTree
Наберите следующий текст:
' "Hello world!" . '
По нажатию [Enter] будет
выведен текст 'Hello world!'
Приведенный выше код содержит
два слова:
"Hello world!" - данные
. (точка) - команда
По команде '.' был произведен
вывод верхнего значения из стека
После выполнения предложенного кода
в стеке осталось значение
(команда '.' не удаляет значение
из стека)
Для очистки стека можно вместо точки
использовать команду '.-' которая
кроме вывода удаляет одно значение из стека.
Код будет таким: ' "Hello world!" .- '
--------------------------
Пример 2
--------------------------
Посмотрим как сохранить текст примера 1
в файл на диске.
Пример кода FRTS:
' all "Hello world!" "c:\test.txt" txt.save '
слово --- результат выполнения
1 команда - Включить режим
автозагрузки библиотек
расширения
2 данные - Сохраняемый текст
добавляется в стек
3 данные - Имя файла
добавляется в стек
4 команда - Сохранить первое значение
из стека в файл имя которого
лежит на вершине стека
т.к. команда 'txt.save' забирает из стека
два значения - после выполнения кода стек пуст
а в корне диска C: будет лежать файл 'test.txt'
--------------------------
Пример 3
--------------------------
Задача:
Загрузить текст из файла "C:\test31.txt",
отсортировать строки по алфавиту,
удалить пустые строки,
сохранить результат в файл "C:\test32.txt"
Решение:
all "C:\test31.txt" txt.load
str.sort
crlf +dup "" str.rep
dup 2 left crlf "=" if 2 cutleft endif
"C:\test32.txt" txt.save
1 строка: Загрузка исходного файла
2 строка: Сортировка
3 строка: Удаление пустых строк
4 строка: Проверка и удаление первой
пустой строки
5 строка: Сохранение конечного файла
<<<--- 900. FAQ - А как же циклы? --- [i]
FRTScript не содержит команд для
циклического выполнения.
Добавление таких команд не планируется.
Это связано с особенностями работы
интерпретатора.
Как организовать циклическое выполнение?
Предлагаемый способ основан на использовании
процедур (команды 'SUB' и 'ENDSUB')
и проверке условий (команды 'IF' и 'ENDIF')
Идея заключается в проверке состояния
переменной и в зависимости от этого
многократного выполнения процедуры.
Пример:
( ------------------------------ )
"mysub" sub . n+1 dup "10" "N<" if mysub endif endsub
0 mysub
( ------------------------------ )
Во второй строке в стек помещается "0"
и вызывается процедура 'mysub'
Процедура выводит текущее значение
с вершины стека и прибавляет единицу
и если значение меньше 10 вызывает 'себя'
и так пока значение в стеке меньше 10
Недостаток этого способа
хранение в стеке счетчика.
При активном использовании стека
и множественных вызовах процедур
хранить счетчик в стеке 'неудобно'
но его можно разместить не в стеке
а использовать для этой цели
библиотеку поддержки переменных 'VAR'
и команды 'var.set' , 'var.get'
Пример:
( ------------------------------ )
"var" loadlib ( грузим ft_var.dll )
"" "count" var.set ( устанавливаем счетчик )
"mysub" sub ( начало процедуры )
( тут наш код ... )
"count" var.get ( берем счетчик )
. n+1 dup
"count" var.set ( сохраняем счетчик )
"10" "N<" if mysub endif
endsub
mysub
( ------------------------------ )
<<<--- 350. FRTScript - Справочная система --- [i]
Справочная система пакета FRTScript состоит из:
Файлов формата *.oph - текст справки по отдельным
элементам системы в специальном формате.
Например: библиотеке ft_txt.dll
соответствует файл справки ft_txt.oph
Файл frts.htm - Основной файл справки.
Генерируется специальным скриптом 'fss\help.fss'
из файлов *.oph
Скрипт fss\help.fss - содержит все необходимые команды
для генерации справочника 'frts.htm'
Файл makehelp.bat - запускающий файл генератора справки
При установке новых библиотек или любых других изменениях
текущей конфигурации пакета FRTScript
Запустите 'makehelp.bat' и актуальная справка будет
создана в файле 'frts.htm'
Смотрите соответстующий раздел справки с описанием
формата файлов *.oph
<<<--- 700. Формат файлов *.oph --- [i]
Файлы формата *.oph содержат текст справки по отдельным
элементам пакета FRTScript.
Актуальная справка (файл 'frts.htm') генерируется
скриптом 'fss\help.fss'
который последовательно загружает фрагменты справки
и обьединяет их добавляя необходимое форматирование.
Файлы формата *.oph
+ Текстовые файлы
+ Каждый файл может содержать несколько статей справки
(количество статей жестко не ограничено)
+ По возможности желательно не использовать кроме
обычного текста и тегов формата OPH
специальные тэги (например тэги HTML)
+ Все тэги используемые в формате OPH
"похожи" на тэги формата HTML
и состоят из двух частей:
открывающий и закрывающий тэг
Структура файла формата OPH
---------------------------
< ? sect >
< ? cap > название статьи ... < ? / cap >
... текст статьи ...
< ? / sect >
< ? sect >
< ? cap > название следующей статьи ... < ? / cap >
... текст следующей статьи ...
< ? / sect >
Описание тэгов формата OPH
--------------------------
< ? sect > Весь текст статьи ... < ? / sect >
< ? cap > название статьи ... < ? / cap >
+ внутри текста статьи
+ одновременно добавляет ссылку на
данную статью в оглавлении
< ? ind > строка в общий индекс < ? / ind >
+ внутри текста статьи
вставляет ссылку на данную статью
< ? ul > список < ? / ul >
< ? li > строка списка < ? / li >
+ внутри списка
+ можно не использовать закрывающий < ? / li >
< ? url > ссылка URL < ? / url >
< ? cmd > Описание команды < ? / cmd >
+ внутри текста статьи
< ? cmdname > команда FRTS < ? / cmdname >
+ внутри описания команды
+ одновременно добавляет ссылку на
данную позицию в статье из индекса команд
< ? cmdstk > -X +Y < ? / cmdstk >
+ количество значений забираемых\помещаемых в стек
+ разделитель - пробел
+ внутри описания команды
< ? cmdind > -X +Y < ? / cmdind >
+ внутри описания команды
вставляет ссылку на данную команду
из общего индекса
<<<--- 290. Интерфейс ftree.exe --- [i]
Программа ftree.exe это 'оконный' вариант
доступа к интерпретатору FRTScript.
ftree удобнее чем обычная консоль frts.exe
Кроме собственно выполнения frts команд
в данной программе есть древовидное меню
отображающее папки и файлы скриптов FSS.
Это меню может быть использовано для
быстрого запуска файлов "заготовок" скриптов.
Рекомендую эту программу для написания
и отладки скриптов FRTS.
Эта программа поставляется отдельным архивом.
Адрес сайта со свежей версией смотрите
в разделе справки "Обратная связь".
Установка:
Распакуйте все файлы и папки из архива ftree.zip
в папку установленного пакета FRTS.
(При распаковке сохраните структуру папок)
После распаковки запустите файл makehelp.bat
для получения обновленной справки.
После установки в справке в группе статей '300'
появится описание установленной программы.
Для запуска программы используйте ftree.exe
<<<--- 530. BIN - чтение и запись файлов --- [i]
Библиотека расширения: ft_bin.dll
Назначение: Чтение и запись бинарных файлов
Библиотека позволяет одновременно редактировать
до 10 бинарных файлов.
Большенство команд выполняются по отношению
к "ТЕКУЩЕМУ" файлу.
Для выбора текущего файла используется команда:
BIN.DEF
ВНИМАНИЕ! Для всех команд библиотеки BIN
допустимо перед командой указывать специальный
символ '!' который обрабатывается как вложенная
команда и позволяет указать текущий файл только
для данной команды.
См. подробнее в описании команды BIN.!
Список команд:
--------------
BIN.DEF -1 +0
Выбор текущего файла
in1 - цифра 1-10
По умолчанию значение: 1
Значения более 10 и менее 1 устанавливаются
в 10 и 1 соответственно
BIN.DEFGET -0 +1
Возвращает в стек номер текущего файла
out1 - цифра 1-10
BIN.! -1 +0
ВНИМАНИЕ! самостоятельной команды BIN.!
не существует.
Но символ '!' может быть указан
перед любой другой командой для
'разового' указания номера текущего файла.
(текущего файла для выполнения только
данной команды)
Например:
' 5 bin.def bin.len bin.close '
текущий файл номер 5
вернуть длину 5-го файла
закрыть файл номер 5
' 5 bin.def 7 bin.!len bin.close '
текущий файл номер 5
вернуть длину 7-го файла
закрыть файл номер 5
При наличии символа '!' в начале имени команды
подразумевается что в стеке кроме параметров
передаваемых для выполнения данной команде
находится и номер "Текущего" (для данной команды)
файла. Соответственно это значение должно
находиться на вершине стека.
BIN.NEW -1 +0
Создает и открывает указанный по имени файл
как текущий файл.
in1 = Путь\ИмяФайла
BIN.OPEN -1 +0
Открывает указанный по имени файл
как текущий файл.
in1 = Путь\ИмяФайла
Если текущий файл использовался и не был закрыт
он предварительно закрывается.
Если имя файла не указывается - сообщение
об ошибке 30001
Если файл не найден новый файл не создается.
BIN.OFS -1 +0
Установить смещение для текущего файла
in1 - цифра 0-...
При открытии файла устанавливается
в 0 (начало файла)
BIN.OFS+ -1 +0
Смещение для текущего файла изменяется
прибавлением передаваемого числа
in1 - цифра
Отрицательное значение передаваемого числа
допустимо
BIN.OFS- -1 +0
Смещение для текущего файла изменяется
вычитанием из текущего смещения передаваемого числа
in1 - цифра
BIN.OFSGET -0 +1
Возвращает смещение для текущего файла
out1 - цифра 0-...
BIN.LEN -0 +1
Возвращает в стек информацию о размере текущего файла
в байтах
BIN.GET -1 +2
Прочитать и вернуть строку длиной in1
in1 - длина читаемой строки
out1 - прочитанная строка
out2 - длина прочитанной строки
Сообщение о возможных ошибках см. BIN.ERR
Если длина читаемой строки выходит за пределы
читаемого файла она автоматически укорачивается
вплоть до 0 (если смещение указывает на конец файла)
BIN.ERR -0 +1
Возвращает в стек информацию о последней ошибке
для текущего файла
Дополнительные коды ошибок:
30001 file not found - noname
30003 File closed
30007 WriteMode:OFF
попытка записи в закрытый для
редактирования файл
BIN.WRITEON -0 +0
Включить режим записи.
При открытии любого файла по умолчанию
возможность записи отключена.
Это сделано для защиты исходного файла
от ошибочной записи\модифицирования.
BIN.WRITEOFF -0 +0
Выключить режим записи.
BIN.PUT -1 +0
Записать передаваемую строку в текущий файл.
Смещение по которому будет произведена запись
устанавливается командами группы BIN.OFS...
BIN.EOF -0 +0
Устанавливает позицию конца файла
по текущему смещению.
Эта команда позволяет обрезать файл.
(Пример: ' 480000 BIN.OFS BIN.EOF BIN.CLOSE '
Новая длина файла 480kb)
BIN.FLUSH -0 +0
При записи информации в файлы
операционная система может откладывать
сам момент записи на некоторое время.
Если выполняемая задача критична по времени
можно явно приказать завершить запись.
Для этого просто укажите BIN.FLUSH
Эта команда применяется отдновременно
ко всем открытым файлам.
BIN.CLOSE -0 +0
Закрывает текущий файл
BIN.CLOSEALL -0 +0
Закрывает все открытые файлы
BIN.NAME -0 +1
Помещает в стек имя текущего файла
BIN.VER -0 +1
Помещает в стек номер версии данной библиотеки
BIN.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. CLIP - буфер windows --- [i]
Библиотека расширения: ft_clip.dll
Назначение: Работа с буфером Windows
Список команд:
--------------
CLIP.GETTEXT -0 +1
Поместить в стек текст из буфера.
Если в буфере текста нет - в стек добавляется
пустая строка.
CLIP.SETTEXT -1 +0
Поместить в буфер верхнее значение из стека
in1 - копируемый текст
CLIP.GETFILES -1 +1
Поместить в стек список файлов из буфера
с указанным разделителем.
in1 - строка разделитель
(если пустая - CrLf)
out1 - список файлов
<<<--- 530. FILES - файлы и папки --- [i]
Библиотека расширения: ft_files.dll
Назначение: Списки файлов и папок
Список команд:
--------------
FILES.LIST -2 +1
Возвращает список файлов в указанной папке
in1 - путь к папке
(например: 'c:\temp')
in2 - маска для имен файлов
(по умолчанию: '*.*')
out1 - список файлов с разделителем CRLF
В возвращаемом списке указывается также полный путь.
Если in2="" подразумевается "*.*"
FILES.FLIST -2 +1
Соответствует команде FILES.LIST
но возвращает список файлов где перечислены
только имена и расширения файлов без путей.
FILES.LISTREL -2 +1
Полностью соответствует команде FILES.FLIST
Имена и расширения файлов без путей.
FILES.SLIST -2 +1
Возвращает список файлов в указанной папке
и во всех вложенных
in1 - путь к папке
(например: 'c:\temp')
in2 - маска для имен файлов
(по умолчанию: '*.*')
out1 - список файлов с разделителем CRLF
В возвращаемом списке указывается
также полный путь.
Если in2="" подразумевается "*.*"
FILES.SLISTREL -2 +1
Возвращает список файлов в указанной папке
и во всех вложенных
in1 - путь к папке
in2 - маска для имен файлов
out1 - список файлов с разделителем CRLF
В возвращаемом списке указывается
также относительный путь.
FILES.SFLIST -2 +1
Возвращает список файлов в указанной папке
и во всех вложенных
in1 - путь к папке
in2 - маска для имен файлов
out1 - список файлов с разделителем CRLF
В возвращаемом списке указываются
только имена файлов.
FILES.EXIST -1 +1
Проверка существования файла
in1 - путь и имя файла
out1 - "1"-существует "0"-нет
FILES.FOLD -1 +1
Возвращает список полных путей и имен
папок вложенных в указанную.
in1 - путь к исходной папке
out1 - список полных путей
и имен папок
FILES.SFOLD -1 +1
Возвращает список полных путей и имен
всех папок вложенных в указанную
(все уровни вложения)
in1 - путь к исходной папке
out1 - список полных путей
и имен папок
FILES.FOLDREL -1 +1
Возвращает список относительных путей и имен
папок вложенных в указанную.
in1 - путь к исходной папке
out1 - список относительных путей
и имен папок
FILES.SFOLDREL -1 +1
Возвращает список относительных путей и имен
всех папок вложенных в указанную
(все уровни вложения)
in1 - путь к исходной папке
out1 - список относительных путей
и имен папок
FILES.FOLDNEW -1 +0
Создает папку (папки)
по указанному пути.
Например: Существует путь C:\TEMP
Выполняем ' "C:\TEMP\X11\sep2005" FILES.FOLDNEW '
Если папка 'X11' не существует
она будет создана перед созданием 'sep2005'
FILES.ERR -0 +1
Сообщение о последней ошибке.
Пустая строка или код ошибки + описание.
Может быть использовано для контроля выполнения:
FILES.FOLDNEW
FILES.VER -0 +1
Помещает в стек номер версии данной библиотеки
FILES.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. PATH - пути --- [i]
Библиотека расширения: ft_path.dll
Назначение: Путь к файлу или папке
Список команд:
--------------
PATH.GET -1 +1
Помещает в стек путь к определенной системной папке
in1 - число
Для примера по использованию чисел
См. PATH.SAMPLE
PATH.SAMPLE -0 +1
Помещает в стек список путей в формате:
' NN PATH.GET "string" '
построчно для всех доступных системных путей
для данной конфигурации ПК.
Собственно представляет собою примеры использования
команды PATH.GET
Возвращаемые значения отражают пути для текущего
пользователя.
PATH.TEMPPATH -0 +1
Помещает в стек путь к временной папке
в формате 'X:\...\'
PATH.TEMPFILE -0 +1
Помещает в стек путь и имя временного файла
!!! Файл не создается
PATH.TEMPFILENEW -0 +1
Помещает в стек путь и имя временного файла
Файл создается !
PATH.FIX -1 +1
Проверяет наличие завершающего символа '\' в строке - путь
в случае отсутствия добавляет символ '\'
in1 - путь
out1 - результат - строка путь\
PATH.FIX2 -1 +1
Убирает из строки завершающий символ '\' (если он найден)
in1 - путь
out1 - результат - строка без завершающего '\'
PATH.VER -0 +1
Помещает в стек номер версии данной библиотеки
PATH.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
В версии 1.05
добавлено: PATH.FIX , PATH.FIX2
<<<--- 530. SHELL - Запуск программ --- [i]
Библиотека расширения: ft_shell.dll
Назначение: Запуск программ
Список команд:
--------------
SHELL.W -1 +0
Запускает программу по имени исполняемого файла
in1 = "Путь\ИмяФайла параметры"
выполнение приостанавливается до завершения
указанной программы
SHELL.ERR -0 +1
Помещает в стек информацию о последней ошибке
SHELL.VER -0 +1
Помещает в стек номер версии данной библиотеки
SHELL.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. STR - Строки --- [i]
Библиотека расширения: ft_str.dll
Назначение: Работа со строками
Список команд:
--------------
STR.TAGEXIST -2 +1
Проверяет наличие в тексте указанного фрагмента
и возвращает 0/1 (нет/да)
in1 - исходный текст
in2 - розыскиваемая подстрока
out1 - возвращаемое значение "0" или "1"
Регистр символов игнорируется.
STR.TAGCUT -3 +3
Вырезает из текста фрагмент ограниченный
двумя передаваемыми фрагментами
in1 - исходный текст
in2 - подстрока левый ограничитель
in3 - подстрока правый ограничитель
out1 - возвращаемое значение
текст до первого ограничителя
out2 - возвращаемое значение
текст после второго ограничителя
out3 - возвращаемое значение
текст между ограничителями
Регистр символов игнорируется.
STR.SORT -1 +1
Забирает из стека значение представляющее собой
многострочный текст с разделителями строк CRLF
Производит сортировку построчно
и возвращает в стек как одно значение.
STR.INSTR -2 +1
Производит поиск фрагмента строки
и возвращает позицию первого символа
фрагмента в исходной строке.
in1 - Исходная строка
in2 - Разыскиваемый фрагмент
out1 - возвращаемое смещение
Если фрагмент не найден out1=0.
Регистр символов учитывается.
STR.MID -3 +1
Вернуть фрагмент исходной строки.
in1 - Исходная строка
in2 - начальная позиция символа
при отрицательных значениях
отсчет с конца строки
in3 - длина фрагмента
(может превышать реальную длину строки)
out1 - фрагмент
STR.SAFECHR -1 +1
Изменяет строку на вершине стека
заменяя символы с учетом возможности
последующего показа в консоли.
Непечатаемые символы заменяются на '.'
STR.ANSI2UNI -1 +1
Конвертирует строку ANSI в Unicode
STR.UNI2ANSI -1 +1
Конвертирует строку Unicode в ANSI
STR.ASCF -1 +1
Замена строки символов
на последовательность
чисел соотв. ASCII коду символов.
Разделитель запятая
in1 - строка
out1 - строка результат 'n1,n2,n3,...'
Результат возвращаемый этой командой
отличается от выполнения команды ядра 'ASC'
в данном случае возвращаемые значения
чисел представлены трехсимвольными числами
формата '000' (например: 5->'005')
STR.TYPEASC -2 +1
Замена строки символов
на последовательность
чисел соотв. ASCII коду символов.
in1 - строка
in2 - количество символов в строке
(если 0 - устанавливается 16)
out1 - строка результат 'n1 n2 n3 ...'
Формат чисел '000' разделитель чисел - пробел
В конец каждой строки
добавляется CrLf (ASCII 13,10)
STR.HEX -1 +1
Замена строки символов
на последовательность чисел
в шестнадцатеричном формате.
Разделитель запятая.
STR.TYPEHEX -2 +1
Замена строки символов
на последовательность чисел
в шестнадцатеричном формате.
Разделитель пробел.
in1 - строка
in2 - количество символов в строке
(если 0 - устанавливается 16)
out1 - строка результат 'hex1 hex2 hex3 ...'
В конец каждой строки
добавляется CrLf (ASCII 13,10)
STR.NHEX -1 +1
Замена числа на вершине стека
его шестнадцатеричным представлением.
STR.INS -3 +1
Вставляет в передаваемую строку
указанный фрагмент в указанную позицию
in1 - Исходная строка
in2 - Вставляемый фрагмент
in3 - Позиция вставки - число
out1 - Конечная (отредактированная) строка
Пример: ' all "sdf567" "oo--" 4 str.ins . '
Результат 'sdfoo--567'
STR.REP -3 +1
Замена в исходной строке
одного фрагмента на другой
in1 - Исходная строка
in2 - Заменяемый фрагмент
in3 - Новый фрагмент
out1 - Конечная строка
Эта команда отличается от команды
'REPLACE' ядра FRTS
STR.REP - заменяет все фрагменты
в отличие от 'REPLACE' где замена
выполняется за один проход.
! Регистр символов учитывается.
STR.FORMAT -2 +1
Форматирует и возвращает значение
in1 - Исходная строка
in2 - Формат
out1 - Конечная строка
Пример: ' "5" "0000" STR.FORMAT ' в стеке будет '0005'
STR.VER -0 +1
Помещает в стек номер версии данной библиотеки
STR.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
В версии 1.11 добавлено: STR.FORMAT
<<<--- 530. TIME - Дата и время --- [i]
Библиотека расширения: ft_time.dll
Назначение: Дата и время
Список команд:
--------------
TIME.NOW -0 +1
Помещает в стек текущую дату и время
в формате 'DD.MM.YY hh:nn:ss'
TIME.D -0 +1
Помещает в стек текущую дату
в формате 'DD.MM.YY'
TIME.T -0 +1
Помещает в стек текущее время
в формате 'hh:nn:ss'
TIME.FORMAT -1 +1
В зависимости от передаваемой строки
помещает в стек значение даты и времени.
Передаваемая строка может содержать следующие
символы замещения:
d - день
m - месяц
y - год
h - часы
n - минуты
s - секунды
Все замещаемые символы будут представлены
двухсимвольными значениями.
Все другие символы передаются без замены.
Например: ' "md-h:n" time.format '
25 сентября в 17:35 вернет в стек: '0925-17:35'
TIME.VER -0 +1
Помещает в стек номер версии данной библиотеки
TIME.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. TXT - текстовые файлы --- [i]
Библиотека расширения: ft_txt.dll
Назначение: Чтение и запись текстовых файлов
Список команд:
--------------
TXT.LOAD -1 +1
Помещает в стек текст прочитанный из текстового файла.
Одно значение в стеке как многострочный текст.
in1 - путь и имя файла
out1 - прочитанный текст
в случае ошибки пустая строка
TXT.SAVE -2 +0
Сохранение текста в новый файл или перезапись существующего
in1 - многострочный текст
in2 - имя сохраняемого файла
TXT.APPEND -2 +0
Дописываем текст к существующему файлу
in1 - многострочный текст
in2 - имя сохраняемого файла
Если файл не существует - будет создан новый
TXT.ERR -0 +1
Помещает в стек информацию о последней ошибке
TXT.VER -0 +1
Помещает в стек номер версии данной библиотеки
TXT.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. VAR - переменные --- [i]
Библиотека расширения: ft_var.dll
Назначение: Работа с переменными
Список команд:
--------------
VAR.SET -2 +0
Создание новой переменной
in1 - значение
in2 - имя переменной
VAR.APP -2 +0
Передаваемое значение добавляется
к значению указанной переменной
in1 - значение
in2 - имя переменной
VAR.PRE -2 +0
Передаваемое значение добавляется
к значению указанной переменной
(в начало строки значения)
in1 - значение
in2 - имя переменной
VAR.GET -1 +1
Поместить в стек значение указанной переменной
in1 - имя переменной
out1 - возвращаемое значение
VAR.EXIST -1 +1
Проверить наличие переменной
in1 - имя переменной
out1 - возвращаемое значение 0-нет 1-да
VAR.DEL -1 +0
Удалить переменную
in1 - имя переменной
VAR.EXTDEL -1 +0
Удалить все переменные имена которых
начинаются с указанной строки
in1 - фрагмент имени переменной
Эта команда позволяет работать с группами переменных
VAR.INFO -0 +1
Поместить в стек информацию о переменных
VAR.INFO- -0 +0
Вывести информацию о переменных не помещая
ее в стек
VAR.COUNT -0 +1
Общее количество переменных
VAR.RESET -0 +0
Уничтожение всех переменных
VAR.VER -0 +1
Помещает в стек номер версии данной библиотеки
VAR.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке
<<<--- 530. WNET - сеть --- [i]
Библиотека расширения: ft_wnet.dll
Назначение: Доступ к сетевым сервисам
Список команд:
--------------
WNET.GETURL -1 +1
Помещает в стек информацию полученную
по сети с указанного ресурса.
in1 - URL
out1 - полученный текст
WNET.PROXY -1 +0
Устанавливает адрес прокси сервера
и при следующих вызовах 'WNET.GETURL'
пытается соединяться через прокси
(Пример: ' "192.168.11.120:8080" WNET.PROXY ')
Для отключения этого режима передаем
в качестве адреса прокси пустую строку
(Пример: ' "" WNET.PROXY ')
WNET.VER -0 +1
Помещает в стек номер версии данной библиотеки
WNET.ABOUT -0 +1
Помещает в стек информацию о данной библиотеке