NToFS ( <число>[, <база> [, <стиль заполнения>, <длина> [, <символ заполнения>] ] ])
<число> - результат любого выражения, дающего число.
<стиль заполнения> - 0, положительное число, отрицательное число или NULL - если больше нуля, то число располагается слева, а заполнение осуществляется
справа; если отрицательное, то заполнение слева, а расположение нумерала -
справа; NULL эквивалентен 0.
<символ заполнения> - если задан, то заполнения осуществляются данным символом,
иначе - пробелом.
StrCpy(<строка 1>, <строка 2> ) – копирует <строку 2> в <строку 1>.
AT( <строка> , <искомая подстрока> ) - осуществляет поиск <искомая подстрока> в
<строка>. Возвращает позицию, с которой <искомая подстрока> начинается в
<строка>, если такое вхождение имеет место, иначе возвращаемое число отрицательно.
PADL( <исходная строка>, <результирующая строка>, <>, [, <знак-заполнитель> ] )
PADR( <исходная строка>, <результирующая строка>, <>, [, <знак-заполнитель> ] )
StrLen( <строка> ) - длина строки
Symbol( <число> ) - преобразует в тип байт
ElemAsStr( <выражение> ) - преобразует значение <выражения> в строку.
<Выражение> должно быть элементом массива, строкой или элементом блока типа
DATA или IMAGE.
IsAlnum( <код символа> ) - определяет, является ли <код символа> кодом буквы
или цифры. Возвращает TRUE, если так, и FALSE, если иначе.
IsDigit( <код символа> ) - определяет, является ли <код символа> кодом цифры.
Возвращает TRUE, если так, и FALSE, если иначе.
IsAlpha( <код символа> ) - определяет, является ли <код символа> кодом буквы.
Возвращает TRUE, если так, и FALSE, если иначе.
StrnCpy( <строка 1>, <строка 2>, <количество> ) копирует <количество> знаков
строки 2 в строку 1. Если количество знаков меньше или равно длине <строка 2>,
то в <строка 1> байт завершения строки не устанавливается, и наоборот, если
имеет место обратное, строка 1 заполняется 0x00 в байтах, превышающих длину
строки 2.
AtOneOf( <строка>, <символ> [ {, <символ> } ] ) осуществляет поиск одного из
перечисленных символов в указанной строке до байта конца строки 0x00. Возвращает номер позиции и код символа в интегрированной 'I'
pos := IntLeft( _capAtOneOf( ... ) ) == _capAtOneOf( ... ) - <позиция символа>
или 0;
code := IntRight( pos ) - код символа.
AtOneOfx0A( <строка>, <символ> [ {, <символ> } ] ) осуществляет поиск одного из
перечисленных символов в указанной строке до символа перевода каретки 0x0A.Возвращает номер позиции и код символа в интегрированной 'I'
pos := IntLeft( _capAtOneOf( ... ) ) == _capAtOneOf( ... ) - <позиция символа> или 0;
code := IntRight( pos ) - код символа.
Если ни один из перечисленных символов не найден, то в позиция будет равна 0, а
вместо <код символа> будет стоять позиция 0x0A.
StoN( <строка>, <тип> ) - возвращает результат преобразования содержимого строки в число заданного типа. |
Функции CAPER, обеспечивающие возможности отображения информации,
сориентированы на Win32 GUI, хотя в целом я пытался сохранить стилистику CAPER предыдущих версий, которая, в свою очередь, опиралась на принципы, заложенные
в BGI: инициализацию работы с экраном, базовые операции вывода на экран текста,
пиксела, линий, прямоугольников, окружностей, взятия пиксела, региона, завершения работы с экраном. В среде MS Windows реализация более или менее внятной концепции работы с экраном - довольно серьезная проблема, если учесть "размазанность" графического интерфейса Win 32. И в определенной степени пришлось следовать этой "размазанности". Существенно, что в CAPER исключен многооконный стиль работы, т.е. активно всегда одно окно Windows. Это имеет свое принципиальное и техническое обоснование. Во-первых, преследуется цель создания языка, не зависящего от возможностей операционной системы, обладающего внятной концепцией работы с экраном (экранами), и в то же время, цель разработки данной версии - разработка в первую очередь эффективных базовых средств управления параллельными вычислениями. Т.е. данный вопрос оставлен на будущее.
Здесь же представлены функции привязки к графическим средствам Windows в
однооконном режиме. Создание окна Windows
VMCreateWindow(
<строка имени класса окна>,
<строка имени окна>,
<тип окна>,
<Y0>,
<X0>,
<Y1>,
<X1>
)
<Y0>, <X0>, <Y1>, <X1> - координаты окна.
Здесь и далее координаты определяются согласно программистским традициям
с левого верхнего угла. Вторая пара координат указывает правый нижний угол.
Turn_Display( On/Off ) -включает/выключает окно.
VMDestroyWin() - уничтожает окно.
ScrollWindow(
<DY>,
<DX>,
<Y10>, <X10>, <Y11>, <X11>,
<Y20>, <X20>, <Y21>, <X21>
)
<DY> - величина прокрутки по вертикали,
<DX> - величина прокрутки по горизонтали,
<Y10>, <X10>, <Y11>, <X11> - координаты прокручиваемого прямоугольника.
<Y20>, <X20>, <Y21>, <X21> - координаты clip-прямоугольника
прокручивает область окна, ограниченную координатами <Y10>, <X10>, <Y11>, <X11>,
на <DY> и <DX>.
Биты, расположенные вовне прямоугольника втягиваются вовнутрь и отображаются.
Биты, выталкиваемые из прямоугольника вовне, не отображаются.
isClosed() - возвращает 1, если окно закрыто, и 0, если открыто.
GetDevCaps(<параметр>) - функция - прямой аналог функции GetDeviceCaps из Win32.
Виртуальной машиной Caper поддерживаются прочие функции управления окном согласно логике Windows, однако здесь они не представлены – концепция графики в Caper поддержана специальной виртуальной машиной. |