Объекты. Функции Операторы.

Наименование     Назначение
ABS Возвращает абсолютное значение числового выражения
ACTIVE Активизирует окно
ADVISE Определяет наличие горячей DDE-связи
ASC Возвращает числовое значение ASCII-кода
AND Побитовое умножение
ASIN Вычисление арксинуса заданного чосла
ATN Вычисление арктангенса заданного чосла
ATTACH Подключение дочернего окна
BIT Проверка заданного бита числа
BITMAP Чтение изображения из bmp файла
CALC Интерпретирует строковое выражение
CBOOL Преобразует любой тип в логический
CBOOL Преобразует любой тип guid
CHANGE Заменяет один символ в строке на другой
CHECK Проверяет наличие сигнала
CHR Получение символа, соответствующего заданному ASCII-коду
CLONG Преобразует любой тип в целочисленный
CMONEY Преобразует любой тип в денежный
CTIME Преобразует любой тип во время
CONV Преобразует любой тип
COS Вычисление косинуса заданного угла
CREAL Преобразует любой тип в вещественный
CSTRING Преобразует любой тип в строковый
CTRIM Удаляет не значащие пробелы
DATE Получение и преобразование даты
DDEOPEN Открывает канал связи с другим приложением
DDERECEIVE Читает данные из DDE канала связи
DDESEND Передает команду другому Windows приложению
DDECLOSE Закрывает канал DDE-связи
EMPTY Контроль инициализации переменной
ERROR Получение текста системной ошибки
EVENT Генерация события
EXCL Сброс заданного бита
EXEFIND Поиск приложения для документа
EXP Вычисление показательной функции
FONT Формирование фонта
FREE Освобождение блока памяти
GET Чтение переменной из окна диалога
GUID Генерация GUID
HEX Шестнадцатиричное представление числа
HIWORD Старшее слово целого числа
INSTR Функция IF
ITEM Выделение блока памяти для переменной типа IMAGE
INCL Устанавливаетзаданный бит числа
INPUT Запрос данных
INSTR Поиск подстроки в строке символов
INT Вычисление целого значения
ITEM Выделение подстроки в строке
LEFT Выделение n левых символов строки
LEN Определение длины строки
LOG Натуральный логарифм
LOWER Преобразует строчные буквы строки в прописные
LOWORD Младшее слово целого числа
MCOPY Копирование строки в буфер
MENU Создает локальное меню
MID Выделение подстроки в строке символов
MOD Остаток от деления
NOT Инверсия булевого или числового выражения
NOW Возвращает значение типа TIME (дата-время)
OBJECT Создает переменную типа объект по образцу
OR Установка бит по маске
PARAM Контроль предопределенной переменной PARAM
PEEK Получение значений строковой переменной
POKE Установка значений строковой переменной
POST Генерация события
POW Возведение в степень
PROFILE Чтение и запись строк из файла dbasic.ini
RGB Формирование маски цвета
RIGHT Выделение n крайних правых символов строки
RND Случайное число
ROUND Округление числа
RUN Запускает на выполнение любую программу
SEND Передача сигнала функции WAIT или CHECK
SIGNAL Создать идентификатор сигнала
SIN Синус
SPACE Формирование строки пробелов
SQR Квадратный корень числа
STR Преобразование числа в строковое выражение
STRING Формирование строки символов
TAN Тангенс
TIME Получение текущего времени и преобразование времени из внутреннего формата в строковое и наоборот
TRIM Убирает пробелы в строке
UPPER Преобразует прописные символы строки в строчные
VAL Преобразование числа из символьной формы представления в числовую
VARGET Получить переменную
VARPTR Определение адреса переменной
VARWND Поиск окна содержащего заданную переменную
WAIT Приостанавливает выполнение программы вплоть до поступления одного из заданного набора сигнала
WNDFIND Поиск окна с заданным заголовком
ABS

Назначение. Возвращает абсолютное значение числового выражения.

ABS( X )

X - любое числовое выражение.

Описание. Функция не изменяет тип числового выражения, т.е. если выражение было типа REAL, то и результат будет типа REAL. Аналогично для LONG будет возвращен тип LONG.

ACTIVE

Назначение.Активизирует окно.

ACTIVE( HWND ) HWND

HWND - описатель окна.

Описание. Функция активизирует окно с заданным идентификаторм. При этом она возвращает идентификатор ранее активного окна.

ADVISE

Назначение.Определяет наличие горячей DDE-связи.

ADVISE(0) BOOL

Описание.Функция возвращает значение "Истина" если какое-либо приложение установило горячую DDE-связь с переменными данной программы. Если таковая связь установлена, то dbasic программа не должна завершать своего выполнения до прекращения этой связи, за исключением аварийных ситуаций.

AND

Назначение.Побитовое умножение.

AND( A, B ) LONG

A, B - любое целочисленное числовое выражение.

Описание.Функция возвращает число равное побитовому умножению числа A на B.

Пример:

a=3; b=2; c=AND(a,b)

ASC

Назначение. Возвращает числовое значение ASCII-кода N-того символа в строковом выражении.

ASC( Строка [,Позиция] ) LONG

Строка - любое строковое выражение,
Позиция - любое числовое выражение.

Описание.Если параметр "Позиция" не указан, то значение "Позиция" принимается равным 1. Если "Позиция" равно 0 или больше длинны строки, то функция возвращает 0. Функцией обратной по отношению ASC, является функция CHR.

Пример:

s="hello"
l1=ASC(s)
l2=ASC(s,2)

ASIN

Назначение.Вычисление арксинуса заданного чосла.

ASIN( X ) REAL

X - любое числовое выражение,

Описание. Результатом выполнения функции ASIN является значение угла, синус которого равен значению выражения X. Угол представлен в радианах и может принимать значение от -pi/2 до pi/2. Если значение X меньше -1 или больше 1, то выдается сообщение об ошибке.

Пример:

pi=ASIN(1)*2

ATN

Назначение.Вычисление арктангенса заданного чосла.

ATN( X ) REAL

X - любое числовое выражение,

Описание. Результатом выполнения функции ATN является значение угла, тангенс которого равен значению выражения X. Угол представлен в радианах и может принимать значение от -pi/2 до pi/2. Для преобразования угла из радианной меры в градусную необходимо значение угла умножить на число 180/pi.

Пример:

gr=10;pi=ASIN(1)*2
a=TAN(gr*pi/180)
c=ATN(a)*180/pi

ATTACH

Назначение.Подключение дочернего окна.

ATTACH( hWnd, top, right ) LONG

hWnd - любое числовое выражение определяющее идентификатор дочернего окна.

top, right - любые числовые выражения определяющии отступ сверху и справа для дочернего окна, относительно родительского.

Описание.В результате выполнения функции ATTACH происходит синхронизация размеров дочернего окна и текущего окна dbasic программы, так-что при изменение размеров окна программы соответственно изиеняются и размеры дочернего окна. Кроме того при активизациия окна dbasic программы происходит передача фокуса ввода данному окну. Функция возвращает идентификатор ранее подключенного дочернего окна.

BIT

Назначение.Контроль бита.

BIT( A, Bit ) BOOL

A - любое целочисленное числовое выражение.
Bit - номер бита в числе.

Описание.Функция возвращает логическое выражение равное истине если указанный бит в числе A установлен и ложь иначе. Нумерация бит начинается с 0.

Пример:

a=2; r=BIT(a,1)

BITMAP

Назначение.Читает битовый образ из файла.

BITMAP( FileName, ResName ) IMAGE

FileName - строковое выражение определяющее имя bmp-файла или имя фала ресурса.
ResName - строковое выражение определяющее имя ресурса или ноль в случае bmp-файла.

Описание.Функция возвращает битовый образ загруженный в память. Для отображение образа следует воспользоваться оператором DRAW, а для освобождения захваченной памяти функцией FREE. Для отображения образа в окне диалога следует создать елемент класса PICTURE и воспользоваться оператором PUT.

Пример отображения в окне

hDib=BITMAP( FileName, 0 )
DRAW hDib, HDC, 0, 0
ok=FREE( hDib )
Пример отображения в окне диалога

Файл ресурса
DIALOG_5 DIALOG 18, 18, 186, 98
CAPTION "Картинки"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
BEGIN
  CONTROL "", 3001, "PICTURE", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER, 13, 11, 73, 80
  CONTROL "OK", 1, "BUTTON", BS_OWNERDRAW | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 105, 12, 66, 25
END
Программа
hDib=BITMAP(RESNAME,"HOME")
...
END

CLOSE:
 ok=FREE( hDib )
END

DLG50:
 EVENT 3001,DLG53 'Реакция на клик в зоне картинки
 EVENT 3000,DLG51
 INPUT NAME,"DIALOG_5",3000
 EVENT 3000
 EVENT 3001
END

DLG51:
 IF PARAM(1) THEN PUT 3001,hDib
END

DLG53:
 USER32!MessageBoxA( HDLG, "Клик", "Окно с картинкой ", 0 )
END

CALC

Назначение.Интерпретирует строковое выражение.

CALC( Строка ) VARIABLE

Строка - любое строковое выражение.

Описание.Функция интерпретирует строковое выражение рассматривая его как строку dBasic и возвращает его резудьтат. Если в результате выполнения выражения возникает ошибка, то на экран выдается сообщение об ошибке. Если пользователь выбирает вариант 'OK', то функция возвращает NULL, иначе происходит аварийный выход из программы.

Пример:

A=2; B=0
res=CALC("A/B")
IF EMPTY(res) THEN STOP

CHANGE

Назначение.Заменяет один символ в строке на другой.

CHANGE( Строка, Шаблон ) STRING

Строка - любое строковое выражение.
Шаблон - строка вида NewSim+OldSim...

Описание.Функция сканирует строку и при обнаружении OldSim замещает его на NewSim.

Пример.

Str1="$123,4"
Str2=CHANGE( Str1, "., $" )
'Результат Str2=" 123.4"

CHECK

Назначение.Проверяет наличие одного из сигналов.

CHECK( Сигнал [, Сигнал ...] ) LONG

Сигнал- идентификатор сигнала созданный функцией SIGNAL.

Описание. Функция проверяет наличие одного из сигналов и возвращает его номер в списке. Если нет ни одного из сигналов, то возвращается ноль.

CHR

Назначение.Получение символа, соответствующего заданному ASCII-коду.

CHR( Код ) STRING

Код- любое числовое выражение, которое может принимать значение от 0 до 255. Если значение выражения не является целым числом, оно преобразуется к целому виду.

Описание. Функцией обратной по отношению CHR, является функция ASC.

Пример.

Lf=CHR(10)

CBOOL

Назначение.Преобразует любое выражения в логическое.

CBOOL( X ) BOOL

X- любое выражение.

Описание. Для числового X функция возвращает "ЛОЖЬ" если X равно 0, иначе "ИСТИНА". Для строкового X функция возвращает "ИСТИНА" если строка равна "TRUE", иначе "ЛОЖЬ". Если X имеет тип NULL, то функция возвращает "ЛОЖЬ". Во всех других случаях генерируется ошибка.

Пример:

res=CBOOL(1)

CLONG

Назначение.Преобразует любое выражения в целочисленное.

CLONG( X ) LONG

X- любое выражение.

Описание.Если X имеет тип NULL, то функция возвращает ноль. В случае GUID возникает сообщение об ошибке.

Пример:

res=CLONG(" 123 ")

CREAL

Назначение.Преобразует любое выражения в вещественное число.

CREAL( X ) REAL

X- любое выражение.

Описание.Если X имеет тип NULL, то функция возвращает ноль. Если параметр не может быть конвертирован в вещественное число, то возникает сообщение об ошибке. Основное отличие от функции VAL заключается в том, что функция всегда возвращает тип REAL и в качестве разделителя разрядов принимается как точка так и запятая.

Пример:

res=CREAL("123.12")

CMONEY

Назначение.Преобразует любое выражения в денежное.

CMONEY( X ) MONEY

X- любое выражение.

Описание.Если X имеет тип NULL, то функция возвращает ноль. Если параметр не может быть конвертирован в деньги, то возникает сообщение об ошибке.

Пример:

res=CMONEY("12345465656.45")

CSTRING

Назначение.Преобразует любое выражения в строку.

CSTRING( X ) STRING

X- любое выражение.

Описание.Если X имеет тип NULL, то функция возвращает пустая строка. Если параметр не может быть конвертирован в строку, то возникает сообщение об ошибке.

Пример:

res=CSTRING(NOW(0))

CGUID

Назначение.Преобразует любое выражения в guid.

CGUID( X ) GUID

X- любое строковое или целочисленное выражение.

Описание.Если в качестве параметра передается строка не являющаяся GUID или целочисленное выражение, то генерируется нулевой GUID. Во всех других случаях возникает сообщение об ошибке.

Пример:

res=CGUID("{165F0D30-1095-11D5-A399-0000EAF902EA}")

CTIME

Назначение.Преобразует любое выражения в time.

CTIME( X ) TIME

X- любое выражение.

Описание.Целочисленное значение на входе рассматривается как значение даты. Строковое выражение должно иметь вид yyyymmdd hh:mm:ss. При этом во времени могут отсутствовать секудны, минуты или часы, а в дате дни и месяцы. Во всех других случаях возникает сообщение об ошибке.

Пример:

res=CTIME("200101 10:12")

CONV

Назначение.Преобразует значение одного типа в другое.

CONV( X, Тип ) VARIABLE

X- любое выражение.
Тип- наименование типа (LONG,MONEY и др).

Описание.Преобразование происходит в соответствии с таблицей:
тип\входBOOLLONGREALMONEYSTRINGTIMEGUIDIMAGE
BOOLokokok-ok---
LONGokokokokokok-ok
REAL-okokokok---
MONEY-okokokok---
STRING-okokokokokok-
TIME-ok--okok--
GUID-ok (0)--ok-ok-
IMAGE-ok-----ok

Пример:

Sum=CONV(0,"MONEY")
COS

Назначение.Вычисление косинуса заданного угла.

COS( X ) REAL

X - любое числовое выражение определяющее значение угла в радианах.

CTRIM

Назначение.Удаляет не значащие пробелы.

CTRIM( Строка ) STRING

Строка- любое строковое выражение.

Описание. Функция возвращает строковое выражение в котором удалены все не значащие пробелы, т.е. пробелы слева и справо от текста, и повторяющиеся пробелы среди текста.

Пример:

Str=CTRIM("  Привет    из   африки  ")
'Результат "Привет из африки"

DATE

Назначение.Получение текущей даты и преобразование даты из внутреннего форматы в строковое и наоборот.

DATE( X [, Format] ) LONG(STRING)

X- числовое или строковое выражение.
Format- строковое выражение определяющее формат даты.

Описание.Если X равно -1, то функция возвращает целочисленное значение текущей даты во внутреннем формате. Если X равно дате во внутреннем формате, то функция возвращает дату в виде строки в формате определенном в Windows. Если X есть строковое выражение даты, то функция возвращает целочисленное значание даты во внутреннем формате. Строка Format может содержать комбинацию следующих символов
d День месяца как число без лидирующего нуля.
dd День месяца как число с лидирующим нулем.
ddd День недели как двухбуквенная обревеатура.
dddd День недели.
M Месяц как число без лидирующего нуля.
MM Месяц как число с лидирующим нулем.
MMM Месяц как трехбуквенная обревеатура.
MMMM Месяц.
y Последнии две цифры года без лидирующего нуля.
yy Последнии две цифры года с лидирующим нулем.
yyyy Год.

Пример:
Date=DATE(DATE(-1),"dd MMMM yyyy"))

DDEOPEN

Назначение.Открывает канал связи с другим приложением.

DDEOPEN( Приложение, Раздел ) LONG

Приложение- любое строковое выражение определяющее имя Windows приложения.
Раздел- любое строковое выражение определяющее имя раздела этого приложения.

Описание.Функция возвращает идентификатор открытого DDE-канала связи с другим Windows-приложением. При этом Windows приложение должно быть уже активным. В случае ошибки возвращается 0.

Пример:
Price=DDEOPEN("WinWord","System")
IF Price=0 GOTO EXIT
res= DDESEND( Price, "[FileNew .Template="+CHR(34)+"NORMAL"+CHR(34)+"]" )
res= DDESEND( Price, "[FileSaveAs .Name="+CHR(34)+NAME+CHR(34)+"]" )
res= DDECLOSE( Price )

DDERECEIVE

Назначение.Читает данные из DDE канала связи.

DDERECEIVE( Канал, Команда ) STRING

Канал - идентификатор, который был получен в результате выполнения функции DDEOPEN.
Команда - любое строковое выражение определяющее команду.

Описание.Функция посылает запрос другому Windows приложению и возвращает результат в строковом выражении.

Пример.

AH= DDEOPEN( "PROGMAN", "PROGMAN" )
IF AH = 0 GOTO NEXT
  AS= DDERECEIVE( AH, "Groups" )
  AR= DDECLOSE( AH )
NEXT:

DDESEND

Назначение.Передает команду другому Windows приложению.

DDESEND( Канал, Команда ) BOOL

Канал- идентификатор,который был получен в результате выполнения функции DDEOPEN.
Команда- любое строковое выражение определяющее команду.

Описание. Функция посылает команду другому Windows приложению с которым установлена DDE-связь. Каждая строка команды заключается в квадратные скобки. Команда так-же может быть послана другой dbasic программе. В этом случае в функции DDEOPEN следует установить имя приложения - "DBASIC", а раздел - имя dbasic-программы с которой устанавливается связь. Команда в этом случе представляет фрагмент dbasic программы каждая строка которой заключена в квадратные скобки, а имена всех меток начинаются с символа '@'. Для такой программы доступны все переменные и метки программы которой посылается команда.

Пример.

AH= DDEOPEN( "PROGMAN", "PROGMAN" )
IF AH = 0 GOTO NEXT
  AR= DDESEND( AH, "[CreateGroup(TEST)]" )
  DELAY 2000
  AR= DDESEND( AH, "[DeleteGroup(TEST)]" )
  AR= DDECLOSE( AH )
NEXT:
DDECLOSE

Назначение.Закрывает канал DDE-связи.

DDECLOSE( Канал ) BOOL

Канал- идентификатор, который был получен в результате выполнения функции DDEOPEN.

Описание.Функция закрывает канал DDE-связь.

EXCL

Назначение.Сброс бита.

EXCL( X, Бит ) LONG

X- любое целочисленное числовое выражение.
Бит- любое целочисленное числовое выражение определяющее номер сбрасываемог бита в числе X. Нумерация бит начинается с нуля.

Пример:
a=3; a=EXCL(a,0)

EMPTY

Назначение.Контроль инициализации переменной.

EMPTY( X ) BOOL

X- любая переменная.

Описание.Функция возвращает значение ИСТИНА если переменная не инициализирована, т.е. имеет NULL-тип.

ERROR

Назначение.Возврощает текст сообщения об ошибке.

ERROR( Код ) STRING

Код- число определяющее код ошибки.

Описание.Функция возвращает тестовое значение соответствующее заданному коду ошибки.

Пример:
res=ERROR(8)

EVENT

Назначение.Генерация события.

EVENT( [hWnd, Код]| Метка ) LONG

hWnd- идентификатор окна, в котором генерируется событие.
Код- число определяющее код события.
Метка- имя метки.

Описание.Функция возвращает количество окон, которому было послано сообщение. Функция существует в двух редакциях. В первой ей передается идентификатор окна и код события, а во второй имя метки, для которой следует сгенерировать событие. Во втором случае сообщение посылается своему же окну.

Пример:

EVENT 3500,LBL01
RES=EVENT(HWND,3500)
...
END

LBL01:
 STOP
END

или

RES=EVENT("LBL01")
...

EXEFIND

Назначение. Поиск приложения для документа.

EXEFIND( Наименование ) STRING

Наименование- строковое выражение задающее наименование файла документа.

Описание.В результате выполнения функция возвращает полный путь и наименование приложения ассоциированного с расширением данного документа. Файл документа должен существовать.

Пример.

' Запускаем Excel
DOCNAME= PRGDIR+"STEP4.XLS"
EXENAME= EXEFIND(DOCNAME)
IF LEN(EXENAME)=0 THEN STOP
AR= RUN( EXENAME+" "+DOCNAME, 5 )

EXP

Назначение.Вычисление экспоненты.

EXP( X ) REAL

X - любое числовое выражение.

Пример:
e=EXP(1)

FONT

Назначение.Формирование фонта.

FONT( HDC, Наименование, Размер, Тип ) LONG

HDC- числовое выражение задающее идентификатор контекста экрана.
Наименование- строковое выражение задающее наименование фонта.
Размер- числовое выражение задающее размер фонта.
Тип- строковое выражение задающее тип фонта.

Описание. Функция формирует идентификатор фонта заданного наименования, размера и типа. В кчестве типа допустимо использовать символы "Bold", "Italic". Сформированный с помощью данной функции идентификатор фонта должен бфть впоследствии освобожден функцией GDI32!DeleteObject(hFont ).

Пример.

NewFont= FONT( HDC, "Pragmatica", 50, "BOLD" )
OldFont= GDI32!SelectObject( HDC, NewFont )
GDI32!TextOutA( HDC, 90, 50, Text, LEN(Text) )
GDI32!SelectObject( HDC, OldFont )
GDI32!DeleteObject( NewFont )

FREE

Назначение. Освобождение блока памяти.

FREE( Handle ) BOOL

Handle- идентификатор блока памяти.

Описание. В результате освобождается блок памятиранее захваченный, например, функцией BITMAP.

Пример.

FileName= FIO!GetOpen( HWND, "Выберите файл картинки", "Картинка (*.bmp)|*.bmp|" )
IF LEN(FileName)=0 THEN END
hDib= BITMAP( FileName, 0 )
hDibOld= GET(3003)
ok= FREE( hDibOld )
PUT 3003,hDib

GET

Назначение.Чтение переменной из окна диалога.

GET( Индекс[, Тип| Элемент] ) VARIABLE

Индекс- числовое выражение определяющее идентификатор элемента окна диалога.
Тип- строковое выражение определяющее тип возвращаемой переменной.
Элемент- числовое выражение задающее номер элемента в "Оконо выбора" в случие множественного выбора.

Описание. Функция возвращает значение переменной элемента окна диалога. Возвращаемое значение зависит от типа элемента. Если функция вызывается не в ответ на одно из сообщений окна диалога, то предварительно следует инициализировать предопределенную переменную HDLG. Если в качестве типа указать строку "HWND", то функция возвращает идентификатор окна задонного элемента.

Тип "Группа выбора"
группа выбора образуется наборм кнопок типа "Radiobutton" объединенных в группу. При нажатии пользователем на одну из кнопок происходит ее выделение, а выделение других кнопок группы сбрасывается. Например:

Результат - целочисленное значение определяющее номер выбранной кнопки. Первая кнопка имеет номер 0 и т.д.

Тип "Кнопка выбора"
кнопка типа "CheckBox". При нажатии пользователем на такую кнопку ее выделение изменяется на обратное. Например:

Результат - логическое значение определяющее состояние кнопки.

Тип "Окно редактирования"
окно типа "Edit". Это окно позволяет пользователю определить значение числовой или строковой переменной. Например:

Результат - строка или число с результатом редактирования. По умолчанию если строка начинается с числа, то она преобразуется в число. При необходимости тип возвращаемой переменной можно определить используя параметр "Тип".

Тип "Окно списка"
окно типа "ComboBox". Это окно позволяет пользователю выбрать значение числовой или строковой переменной из списка. Например:

Результат - текст с результатом выбора, если "Окно списка" не имеет собственной прорисовки или номер выбранного элемента (начиная с 1) в противном случае. Если пользователь не произвел выбор, то возвращается значение типа NULL.

Тип "Окно выбора"
окно типа "ListBox". Это окно позволяет пользователю выбрать значение числовой или строковой переменной из списка. Например:

В отличие от "ComboBox" окно допускает множественный выбор. Для получения значения выбранных элементов в этом случае следует использовать синтаксис GET(Индекс,Элемент). Причем нумерация элементов начинается с 0 в случае использования массива и с 1 в случает окна с собственной прорисовкой.

Тип "Окно картинка"
окно типа "PICTURE". Это окно позволяет получить HANDEL картинки ранее установленной в нем оператором PUT. Функция возвращает переменную типа IMAGE.

См. так-же:
PUT
INPUT
DIALOG

HEX

Назначение.Получение шестнадцатиричного представления целого числа.

HEX( X ) STRING

X- любое целочисленное числовое выражение.

HIWORD

Назначение.Старшее слово целого числа.

HIWORD( X ) LONG

X- любое числовое выражение.

INSTR

Назначение.Поиск подстроки в строке символов.

INSTR( [Позиция,] Строка, Подстрока ) STRING

Позиция- любое числовое выражение, значение которого определяет позицию в строке, с которой должен начинаться поиск. Если операнд не задан, то поиск начинается с первой позиции,
Строка- строковое выражение, значение которого задает исходную строку, в которой будет осуществлятся поиск,
Подстрока- строковое выражение, значение которого задает исходную подстроку.

Описание.Функция возвращает номер позиции, начиная с которой заданная подстрока появляется в исходной строке. Если "Позиция" определяет число большее, чем длинна исходной строки, или исходная строка является пустой строкой, или заданная подстрока не найдена, то функция возвращает значение ноль. Если операнд "Подстрока" является пустой строкой, то функция возвращает значение операнда "Позиция" или 1, если "Позиция" не задана.

Пример

AS="DBCAEBC"
BS="BC"
AL=INSTR(AS,BS)
BL=INSTR(3,AS,BS)
'Результат AL=2, BL=6.

INCL

Назначение.Установка бита.

INCL( X, Бит ) LONG

X- любое целочисленное числовое выражение.
Бит- любое целочисленное числовое выражение определяющее номер устанавливаемого в X бита. Нумерация начинается с нуля.

Пример

A=2; B=INCL(A,0)
'Результат B=3.

INPUT

Назначение.Редактирование переменной.

INPUT( Title, Prompt, X ) STRING

Title- строка заголовка окна ввода.
Promt- строка приглашение окна ввода.
X- переменная.

Описание.Функция отображает окно диалога для ввода значения переменной. Если пользователь отказался от ввода, то возвращается значение типа NULL.

Пример

Name=INPUT("DBASIC","Введите ваше имя:", "" )
IF EMPTY(Name) GOTO CLOSE

INT

Назначение.Вычисление целого значения.

INT( X ) VARIABLE

X- любое числовое выражение.

Описание.Функция возвращает целую часть числа путем усечения дробной. Так для чисел -5.3, -5.8, -5 она вернет -5. А для чисел 5.3, 5.8, 5 она вернет 5. При этом функция не изменяет тип числа. Т.е если параметр был вещественным числом, то и результат будет вещественным.

Пример

A=5.3; B=INT(A)

ITEM

Назначение.Выделение подстроки в строке

ITEM( Строка, Разделители, Номер ) STRING

Строка- любое строковое выражение.
Разделители- любое строковое выражение.
Номер- любое числовое выражение.

Описание. Функция возвращает подстроку, которая является частью исходной строки заключенной между символами разделителями. Номер подстроки определяется числом "Номер" (начиная с 1). Если строка "Строка" содержит выражения в кавычках, то символы "Разделители" находящиеся в кавычках игнорируются.

Пример

A=ITEM("Один,Два;Три",",;",3)
'Результат A="Три".

LEFT

Назначение.Выделение n левых символов строки.

LEFT( Строка, Длина ) STRING

Строка- строковое выражение, значение которого задает исходную строку,
Длина- числовое выражение, значение которого задает длину выделяемой подстроки.

Описание. Функция возвращает подстроку, состоящую из "Длина" самых левых символов "Строка". Если "Длина" больше, чем длина строки "Строка", то возвращается целая строка. Если "Длина" равна 0, то возвращается пустая строка.

Пример.

AS="HELLO BASIC"
CS=LEFT(AS,5)
'Результат CS="HELLO"

LEN

Назначение.Определение длины строки.

LEN( Строка ) LONG

Строка- строковое выражение.

LOG

Назначение.Натуральный логарифм.

LOG( X ) REAL

X- любое числовое выражение.

Пример.

A=LOG(EXP(1))
'Результат A=1

LOWER

Назначение.Преобразование символы строки в прописные.

LOWER( Строка ) STRING

Строка- любое строковое выражение.

LOWORD

Назначение.Младшее слово целого числа.

LOWORD( X ) LONG

X - любое числовое выражение.

MCOPY

Назначение. Копирует строку в буфер и наоборот.

MCOPY( PSTR, Строка ) LONG
MCOPY( PSTR ) STRING

PSTR- числовое выражение задающее указатель на буфер приемника или источника.
Строка- любое строковое выражение

Описание. Функция существует в двух редакциях. В первой она копирует строку в буфер, указатель на который помещен в PSTR. Этот прием используется для передачи строк внешним объектам через механизм сообщений. Во второй она рассматривает PSTR как указатель на буфер содержащий исходную строку. В результате ее выполнения строка копируется в dbasic переменную.

Пример.

EVENT 3000,READ
...
READ:
  RES=MCOPY( PARAM, "Hello" )
END

MENU

Назначение. Создает локальное меню или модифицирует существующее.

MENU( 0,0,0) hMenu
MENU( hMenu, Текст, Код ) BOOL(LONG)
MENU( hMenu, X, Y ) BOOL

hMenu- описатель меню.
Текст- строковое выражение опеределяющее текст пункта меню или команду:

  • - -разделитель..
  • DISABLE -деактивизировать пункт меню с кодом Код.
  • ENABLE -активизировать пункт меню с кодом Код.
  • REMOVE -удалить пункт меню с кодом Код.
  • SUBMENU -получить идентификатор подменю с номером Код.
  • REFRESH -переотобразить меню.
  • Код- числовое выражение опеределяющее код события пункта меню.
    X,Y - числовые выражения определяющие координаты верхнего левого угла меню.

    Пример.

    ok= MENU( HMENU, "REMOVE", 40201 )
    hMenu=MENU( HMENU, "SUBMENU", 1 )
    ok= MENU(hMenu,"Показать список",40208)
    END
    
    RMOUSE:
     hMenu= MENU(0,0,0)
     IF hMenu==0 THEN END
     ok= MENU(hMenu,"Dialog1",40106) 
     ok= MENU(hMenu,"Dialog2",40107)
     ok= MENU(hMenu,"Dialog3",40108)
     ok= MENU(hMenu,XPOS,YPOS)
    END 
    

    MID

    Назначение. Выделение подстроки в строке символов.

    MID( Строка,  Позиция [, Длина] ) STRING

    Строка- строковое выражение.
    Позиция- целочисленное выражение.
    Длина- целочисленное выражение.

    Описание. Результатом выполнения функции является подстрока строки символов. Длина подстроки определяется операндом "Длина". Операнд "Позиция" определяет начальную позицию подстроки в заданной строке. Если "Длина" опущена или определяет длину большую, чем количество символов в строке вправо от "Позиция" и до конца строки, то возвращается строка от "Позиция" и до конца строки. Если значение "Длина" равно нулю или значение "Позиция" превышает длину заданной строки, то результатом выполнения функции будет пустая строка. Выделение подстроки можно также выполнить функциями LEFT и RIGHT.

    Пример.

    AS="HELLO BASIC"
    BS=MID( AS, 1, 5 )
    'Результат BS="HELLO".

    MOD

    Назначение.Остаток от деления.

    MOD( X, Y ) LONG

    X,Y- целочисленное выражение.

    Пример.

    X=9; Y=MOD(X,2)
    'Результат Y=1.

    NOT

    Назначение.Инверсия.

    NOT( X[,Y] ) LONG(BOOL)

    X- любое целочисленное или логическое выражения,
    Y- любое логическое выражения.

    Описание.Если X это логическое выражение, то функция возвращет обратное значение. Если X число, то функция производит инверсию бит числа. Если заданы два параметра X и Y, то происходить сброс бит числа X по маске Y.

    NOW

    Назначение.Возвращает текущую дату и время.

    NOW(0) TIME

    Описание.Функция возвращает переменную типа TIME содержащую текущие дату и время.

    Пример.

    D=24*60*60
    T=NOW(0)
    T=T+D 'прибавляем день 
    R=DATE(T)+" "+TIME(T)

    OBJECT

    Назначение..Создает переменную типа объект по образцу

    OBJECT( oTempl, pClass ) OBJECT

    oTempl- переменная типа OBJECT.
    pClass- целое число являющееся указателем на класс того-же типа, что и oTempl.

    Описание.Функция создает переменную типа OBJECT с указателем класса равным параметру pClass. Данная функция может быть использована, если в качестве параметра события возвращается указатель на класс. Тогда для вызова его методов необходимо создать переменную типа OBJECT.

    Пример.

    EVENT 4000,GETRS
    SET Rs=RSODBC.New( Base, "DB", 0 )
    ok= Rs.Open("SELECT * FROM CITY","KEYSET")
    ...
    END
    
    GETRS:
     rs=OBJECT(Rs,PARAM)
     Name= rs.FldGet("NAME")
    END
    

    OR

    Назначение. Установки бит по маске.

    OR( X, Y ) LONG

    X,Y- любое целочисленное выражение.

    Описание. В результате выполнения функция возвращает число X в котором установлены биты установленные в числе X или в числе Y.

    PEEK

    Назначение.Получение значений строковой переменной.

    PEEK( Указатель, Смещение, Тип )

    Указатель - указатель на строковую переменную.
    Смещение- числовое выражение задающее смещение внутри строковой переменной.
    Тип- строковое выражение задающее размер и тип возвращаемой переменной.

    Описание. Функция возвращает числовое или строковое значение переменной находящейся по смещению определяемому значение переменной "Смещение". При этом тип и размер переменной определяется строковым выражением типа:

  • "Sn" - по заданному смещению выбирается строковая переменная размером не более n-символов.
  • "B" - по заданному смещению выбирается числовая переменная размером в один байт.
  • "W" - по заданному смещению выбирается числовая переменная размером в одно слово (два байта).
  • "L" - по заданному смещению выбирается числовая переменная размером в двойное слово (четыре байта).
  • "P" - значение переменной по заданному смещению рассматривается как указатель на строку. В результате выполнения функции указанная строка копируется в строковую переменную dbasic.
  • Механизм предоставляемой этой функцией может быть использован для доступа к переменным типа структура языка C или запись языка PASCAL.

    Пример.

    ' Пример использования структуры 
    ' 
    ' typedef struct
    ' {
    '  LONG left;
    '  LONG top;
    '  LONG right;
    '  LONG bottom;
    ' } RECT;
    ' 
    WINREC="1234123412341234"
    PREC= VARPTR(WINREC)
    USER32!GetClientRect( HWND, PREC )
    left=PEEK( PREC, 0, "L1" )
    top=PEEK( PREC, 4, "L1" ) 
    right=PEEK( PREC, 8, "L1" )
    bottom=PEEK( PREC, 12, "L1" ) 
    

    POKE

    Назначение.Установка строковой переменной.

    POKE( Строка, Смещение, Тип )=Выражение

    Строка- строковая переменная.
    Смещение- числовое выражение задающее смещение внутри строковой переменной.
    Тип- строковое выражение задающее размер и тип устанавливаемой переменной.

    Описание. Оператор устанавливает значение переменной находящейся по смещению определяемому значение переменной "Смещение".При этом тип и размер переменной определяется строковым выражением типа:

  • "Sn" - по заданному смещению копируется строковая переменная размером не более n-символов.
  • "B" - по заданному смещению копируется числовая переменная размером в один байт.
  • "W" - по заданному смещению копируется числовая переменная размером в одно слово (два байта).
  • "L" - по заданному смещению копируется числовая переменная размером в двойное слово (четыре байта).
  • "P" - значение переменной по заданному смещению рассматривается как указатель на строку. В результате выполнения оператора значение переменной инициализируется указателем на строку строковой переменной dbasic.
  • Механизм предоставляемой этим оператором может быть использован для доступа к переменным типа структура языка C или запись языка PASCAL.

    Пример.

    ' Пример использования структуры 
    ' 
    ' typedef struct
    ' {
    '  LONG left;
    '  LONG top;
    '  LONG right;
    '  LONG bottom;
    ' } RECT;
    ' 
    WINREC="1234123412341234"
    POKE( WINREC, 0, "L1" )=10
    POKE( WINREC, 4, "L1" )=10
    POKE( WINREC, 8, "L1" )=100
    POKE( WINREC, 12, "L1" )=100
    

    POST

    Назначение.Генерация отложенного события.

    POST( hWnd, Код ) LONG

    hWnd- идентификатор окна, в котором генерируется событие или 0 если всем.
    Код- число определяющее код события.

    Описание.Функция возвращает количество окон, которому было послано сообщение. Функция ставит в очередь сообщение.

    POW

    Назначение.Возведение числа в степень.

    POW( X, Y ) REAL

    X,Y- любое числовое выражение.

    Пример.

    Y=MOD(3,2)
    'Результат Y=9.

    PROFILE

    Назначение.Чтение и запись полей файла dbasic.ini.

    PROFILE( Секция, Поле [, Значение] ) STRING

    Секция- строковое выражение определяющее имя секции dbasic.ini файла.
    Поле- строковое выражение определяющее имя поля dbasic.ini файла.
    Значение- выражение определяющее значение поля.

    Описание.Если "Значение" задано, то функция производит его запись в поле файла dbasic.ini, иначе функция читает его из файла. В любом случае функция возвращает записанное или прочитанное значение в строковом представлении.

    Пример.

    S=PROFILE(PRGNAME,"Date",STR(DATE(-1)))
    Date=CLONG(PROFILE(PRGNAME,"Date"))
    

    RGB

    Назначение.Формирование переменной цвета

    RGB( Красный, Зеленый, Синий ) LONG

    Красный, зеленый, синий - числовые выражения, значения которых задает весовое соотношение цветов в результирующем цвете.

    RIGHT

    Назначение. Выделение n крайних правых символов строки

    RIGHT( Строка, Длина ) STRING

    Строка- строковое выражение, значение которого задает исходную строку,
    Длина- числовое выражение, значение которого задает длину выделяемой подстроки.

    Описание. Функция возвращает подстроку, состоящую из "Длина" самых правых символов "Строка". Если "Длина" больше, чем длина строки "Строка", то возвращается целая строка. Если "Длина" равна 0, то возвращается пустая строка.

    Пример.

    AS="HELLO BASIC"
    DS=RIGHT(AS,5)
    'Результат CS="BASIC"
    

    RND

    Назначение.Получить случайное число в диапазоне от 0 до 1.

    RND( X ) REAL

    X- числовое выражение, значение которого используется для переустановки базы генерации перед получением очередного случайного числа.

    Описание. Если значение X не равно нулю, функция производит переустановку базы генерации. В противном случае возвращает очередное случайное число, находящееся в диапазоне между 0 и 1.

    ROUND

    Назначение.Округление числа или времени.<.p>

    ROUND( Число, Точность ) VARIABLE

    Число- любое выражения типа LONG,REAL,MONEY,TIME.
    Точность- числовое выражение определяющее точность.

    Описание.Функция округляет переменную, до указанной точности. Для чисел "Точность" определяет количество знаков после запятой в случае положительного числа и до запятой - в случае отрицательного числа. Для времени -2 округляет знчение даты до года, -1 до месяцев, 0 до дней, 1-до часов и 2 до минут.

    Пример.

    A=ROUND(1234,1234,2) ' A= 1234,12
    T=ROUND(CTIME("20011231 10:12"),0) ' T= 20011231
    

    RUN

    Назначение.Запускает на выполнение любую программу.

    RUN( Файл, Параметр, [Флаг] ) LONG

    Файл- строковое выражение опеределяющее имя exe-файла программы и параметры необходимые для ее запуска.
    Параметр- числовое или строковое выражение определяющее вид запускаемой программы.
    Флаг- целочисленное выражение, число не равное нулю приводит к ожиданию окончания выполнения запущенной программы с возвратом ее кода выполнения.

    Описание. В результате выполнения функции запускается на выполнение новая программа. Функция возвращает:
    0 - при успешном запуске;
    1 - при ошибке запуска;
    иначе - код ошибки выполнения программы.
    В случае числового значения параметр запуска равен: 0 - окно скрыто; 5 - окно видимо; 2 - окно минимизировано; 3 - окно максимизировано.

    SEND

    Назначение. Передача сигнала функции WAIT.

    SEND( Сигнал ) BOOL

    Сигнал- идентификатор сигнала созданный функцией SIGNAL.
    Описание. Функция посылает сигнал программе, которая в этот момент должна находится в состоянии ожидания сигнала, т.е. выполнять функцию WAIT.

    Пример.

    S1= SIGNAL(0)
    S2= SIGNAL(0)
    ON WAIT( S1, S2 ) GOTO L1,L2
    END
    L1:USER32!MessageBoxA( HWND, "Сигнал 1", "TEST", 0 );END
    L2:USER32!MessageBoxA( HWND, "Сигнал 2", "TEST", 0 );END
    
    SIGNAL

    Назначение. Создать идентификатор сигнала.

    SIGNAL(0) LONG

    Описание. Функция создает идентификатор сигнала, который затем может быть послан функцией SEND и принят функцией WAIT.

    SIN

    Назначение. Вычисление синуса заданного угла.

    SIN( X ) REAL

    X- числовое выражение, задающее значение угла в радианах.

    SPACE

    Назначение. Формирование строки пробелов.

    SPACE ( Длина ) STRING

    Длина- числовое выражение, значение которого задает длину состоящей из пробелов строки.

    STR

    Назначение. Преобразование числа в строковое выражение.

    STR( X [, Формат] ) STRING

    X- любое числовое выражение.
    Формат- строковое выражение задающее формат выводимого числа.

    Описание.Результатом выполнения функции является строка символов, представляющая заданное число. В качестве десятичного разделителя всегда используется точка. Для обратного преобразования можно воспользоваться функцией VAL. Синтаксис выражения "Формат" аналогичен синтаксису функции pformat в C. Например %10.2f или %d и т.п.

    STRING

    Назначение. Формирование строки символов.

    STRING( Длина, Выражение ) STRING

    Длина- числовое выражение, значение которого задает длину строки.
    Выражение- числовое или строковое выражение, которое задает символ, из которого формируется строка.

    Пример.

    AS= STRING(10,"?")
    'Результат AS="??????????"
    

    SQR

    Назначение.Квадратный корень.

    SQR( X ) REAL

    X- любое числовое выражение.

    TAN

    Назначение. Вычисление тангенса заданного угла.

    TAN( X ) REAL

    X- числовое выражение, значение которого задает значение угла в радианах.

    TIME

    Назначение. Получение текущего времени и преобразование времени из внутреннего форматы в строковое и наоборот.

    TIME( X ) LONG(STRING)

    X- числовое или строковое выражение.

    Описание. Если X равно -1, то функция возвращает целочисленное значение времени в секундах. Если X число большее или равное 0 то функция возвращает время в виде строки в формате определенном в Windows. Если X есть строковое выражение времени, то функция возвращает целочисленное значание времени.

    TRIM

    Назначение. Удаляет все пробелы.

    TRIM( Строка ) STRING

    Строка- строковое выражение.

    UPPER

    Назначение. Преобразование символы строки в прописные.

    UPPER( Строка ) STRING

    Строка- любое строковое выражение.

    VAL
    Назначение.Преобразование числа из символьной формы представления в числовую.

    VAL( X ) STRING

    X- любое символьное выражение.

    Описание. Результатом выполнения функции является число. Если первые символы в значении аргумента не цифры, результатом будет значение 0. Если число содержит десятичные разряды, то возвращается тип REAL, иначе LONG. В качестве разделителя десятичных разрядов воспринимается только точка. Все другие символы воспринимаются как окончание числового выражения. Для обратного преобразования можно воспользоваться функцией STR.

    VARGET

    Назначение. Получить переменную.

    VARGET( HWND, Имя ) VARIABLE

    HWND- идентификатор любого dbasic окна.
    Строка- строковое выражение задающее имя переменной.

    Описание. Результатом выполнения функции является получение переменной из другого окна программы.

    Пример.

    HANY= WNDFIND("Приложение")
    IF HANY<>0 THEN V= VARGET( HANY, "PRGNAME" )
    

    VARPTR

    Назначение. Определение адреса переменной.

    VARPTR( X ) POINTER

    X- любая переменная.

    Описание. Результатом выполнения функции является получение переменной типа указатель POINTER равной адресу переменной X.

    VARWND

    Назначение. Поиск окна содержащего заданную переменную.

    VARWND( Выражение, Имя ) LONG

    Выражение- выражение любого типа.
    Имя- строковое выражение задающее имя переменной.

    Описание.Функция просматривает переменные заданного имени во всех окнах и сравнивает их значения со значением "Выражения". Если они равны, то функция возвращает идентификатор данного окна. Если окно не найдено, то возвращается 0.

    Пример.

    HANY= VARWND("INAC"+STR(Id),"KEY")
    IF HANY<>0 THEN V= VARGET( HANY, "PRGNAME" )
    

    WNDFIND

    Назначение. Поиск окна с заданным заголовком.

    WNDFIND( Заголовок) LONG

    Заголовок - строковое выражение задающее текст заголовка окна.

    Описание. Функция возвращает идентификатор окна с заданным заголовком или 0, если такого окна не существует.

    WAIT

    Назначение.Приостанавливает выполнение программы вплоть до поступления одного из заданного набора сигнала.

    WAIT( Сигнал, Сигнал, ... ) LONG

    Сигнал - идентификатор сигнала созданный функцией SIGNAL.

    Описание. Функция приостанавливает выполнение программы вплоть до поступления одного из заданного набора сигналов. При этом она возвращает целочисленное значение равное номеру сигнала в списке.

    Пример.

    S1= SIGNAL(0)
    S2= SIGNAL(0)
    ON WAIT( S1, S2 ) GOTO L1,L2
    END
    L1:USER32!MessageBoxA( HWND, "Сигнал 1", "TEST", 0 );END
    L2:USER32!MessageBoxA( HWND, "Сигнал 2", "TEST", 0 );END
    


    Содержание.   Операторы.
    Hosted by uCoz