В определенных режимах системы доступна работа со встроенным в систему языком программирования CSDNBasic, в котором содержатся предопределенные функции, конструкции и т.д.

Для удобства ввода и редактирования текста кода, редактор выделяет цветом элементы языка CSDNBasic - ключевые слова, операторы, комментарии и другие синтаксические элементы. Редактирование текста здесь ничем не отличается от работы в редакторе скриптового модуля VBScript (см. раздел 18.3). При этом существует ряд определенных правил и ограничений:

Синтаксис

·         CSDNBasic нечувствителен к регистру.

·         Для комментария используется апостроф < ' >.

·         Символьные значения должны заключаться в двойные кавычки < " " >.

·         Начало нового оператора определяется переходом на новую строку.

·         Ограничений на максимальную длину строки нет. Операторы в одной строке разделяются двоеточием < : >. Например:

a = 1 : b = 2 : c = 0

if a > b then : c = a : else : c = b : End If

·         Для удобства чтения, можно объединить несколько физических строк в одну логическую при помощи пробела < _ >. Например:

a = "Сообщение пользователю"_

+ vUserName

Операторы

Оператор - это наименьшая, способная выполняться, единица кода CSDNBasic.

Поддерживаются операторы: CSDNBasic, арифметические, присваивания, сравнения, логические, конкатенации.

Порядок применения операторов: арифметические, конкатенации, сравнения, логические. Если в выражении есть несколько операторов одного типа, то они применяются в обычном порядке - слева направо. При необходимости можно изменять порядок применения операторов при помощи круглых скобок < ( ) >.

·         Оператор условного перехода. В CSDNBsic доступен только один оператор < If >. Например:

If выражение Then

если условие = True

End If

или

If выражение Then

если условие = True

Else

если условие = False

End If

Вложение оператора < If > не поддерживается.

Оператор < If > обязательно должен оканчиваться < End If >.

·         Операторы цикла:

·         конструкция < For > ... < Next >. Используется, если количество циклов изветсно заранее. Например:

For iCounter = 1 to 10

Next

Для указания, насколько должно прирастать значение счетчика, используется положительное значение у слова < Step >.

For iCounter = 1 to 10 Step 2

Next

Для указания, насколько должно убавляться значение счетчика, используется отрицательное значение у слова < Step >.

For iCounter = 10 to 1 Step -2

Next

·         конструкция < Do While > ... < Loop >. Используется, если количество циклов заранее неизвестно. Например:

Do While MyVar < 10

MyVar = MyVar + 1

Loop

 

·         конструкция < Do Until > ... < Loop >. Используется, если количество циклов заранее неизвестно, при этом цикл продолжается пока условие ложно. Например:

Do Until MyVar >= 10

MyVar = MyVar + 1

Loop

·         конструкция < Do > ... < Loop While>. Используется, если требуется чтобы условие проверялось после завершения цикла, при этом цикл будет выполнен по крайней мере один раз. Например:

Do

MyVar = MyVar + 1

Loop While MyVar < 10

Немедленный выход из цикла не поддерживается.

·         Операторы арифметические:

·         сложение < + >

·         вычитание < - >

·         умножение < * >

·         деление < / >

·         Оператор присваивания - знак равенства < = >. Например:

nVar = 10

·         Операторы сравнения (всегда возвращают True, если утверждение истинно или False, если утверждение ложно):

·         равенство < = >. Например:

If (nVar = 10)

·         больше, чем < > >. Например:

If (nVar > 10)

·         меньше, чем < < >

·         больше или равно < >= >. Например:

If (nVar >= 10)

·         меньше или равно < <= >.

·         не равно < <> >. Например:

If (nVar <> 10)

При сравнении строковых значений, учитываются регистр символов и пробелы.

При сравнении текстовых строк на больше/меньше, по умолчанию сравниваются двоичные коды символов - какие больше или меньше.

·         Операторы логические:

·         логическое И < And >. Должны быть истинными оба условия.

·         логическое ИЛИ < Or >. Должно быть истинным хотя бы одно из условий.

·         логическое отрицание < Not >. Возвращает True, если условие ложно.

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

if (a = b) or (b = c) then

end if

·         Оператор конкатенации - знак сложения < + >. Например:

"1" + "2" + varName

Переменные

Переменные - это контейнеры для хранения изменяемых данных.

При присвоении имен элементам (переменные, константы, функции, процедуры и т. п.), необходимо учитывать:

·         Имя должно начинаться с буквы.

·         Имя не должно содержать пробелов и символов пунктуации (исключение — символ подчеркивания < _ >).

·         Длина имени не должна превышать 255 символов.

·         Имя должно быть уникальным в текущей области видимости.

·         Имя не может совпадать с зарезервированными словами (выделяются синим цветом в окне редактора кода).

Все переменные в CSDNBasic объявляются как Variant, а уже в процессе работы скрипта, Variant может принимать любой из имеющихся подтипов данных.

При присвоении значений переменным, необходимо учитывать:

·         Строковые значения должны заключаться в двойные кавычки < " " >. Например:

sVar1 = "Hello"

·         Шестнадцатеричные значения не поддерживаются.

Константы

Допускается использование только встроенных констант:

·         число ПИ < PI >

·         основание натурального логарифма < E >

·         истина < True >

·         ложь < False >

·         отсутствие значения < Null >. Любая арифметическая операция с Null возвращает 0.

·         сравнение строк с учетом регистра < vbBinaryCompare >

·         сравнение строк без учета регистра < vbTextCompare >

Процедуры и функции

Создание пользовательских процедур и функций не поддерживается.

Вызов (значение в квадратных скобках может отсутствовать):

[ИмяПеременной = ]ИмяФункции[([параметры])]

Если функция имеет параметры, то параметры обязательно заключаются в круглые скобки. В противном случае скобки не нужны. Например:

a = Sin(PI / 2)

Функции калькулятора

·         Абсолютное значение < Abs >. Возвращает абсолютное значение переданного функции числа (то же число, но без знака).

Function Abs (value As integer) As integer

·         Арктангенс < Atn >

Function Atn (value As double) As double

·         Косинус < Cos >

Function Cos (value As double) As double

·         Экспонента < Exp >

Function Exp (value As double) As double

·         Логарифм < Log >

Function Log (value As double) As double

·         Случайное число < Rnd >. Возвращает случайное число от 0.0 до 1.0.

Function Rnd As double

Для получения целого числа от < MinVal > до < MaxVal > используется код:

i = Int(MinVal + (Rnd() * MaxVal))

·         Знак числа < Sgn >

Function Sgn (value As Variant) As integer

Возвращает:

·         1, если число положительное.

·         -1, если отрицательное.

·         0, если проверяемое число равно 0.

·         Синус < Sin >

Function Sin (value As double) As double

·         Квадрат числа < Sqr >

Function Sqr (value As double) As double

·         Тангенс < Tan >

Function Tan (value As double) As double

·         Отбросить дробную часть < Fix >

Function Fix (value As integer) As integer

·         Ближайшее меньшее целое число < Int >

Function Int (value As integer) As integer

·         Минимальное число < Min >

Sub Min (value1 As Variant, value2 As Variant, [valueN] As Variant)

·         Максимальное число < Max >

Sub Max (value1 As Variant, value2 As Variant, [valueN] As Variant)

·         Сумма чисел < Sum >

Sub Sum (value1 As Variant, value2 As Variant, [valueN] As Variant)

·         Длина строки < StrLen >. Возвращает число символов в строке.

Function StrLen (Str As string) As integer

·         Символ по коду < Chr >. Возвращает символ по его числовому коду.

Function Chr (Value As integer) As char

Параметры:

·         Value As integer Код символа.

·         Числовой код символа < Asc >. Возвращает числовой код для переданного символа.

Function Asc (Value As char) As integer

·         Проверка на отсутствие значения < IsNull >

Function IsNull (Value As Variant) As boolean

·         Поиск подстроки < InStr >. Возвращает первую позицию вхождения подстроки.

Function InStr ([start] As integer, Str As string, SubStr As string, compare As integer) As Integer

Параметры:

·         [start] As integer Стартовая позиция поиска (параметр может отсутствовать).

·         Если start > Длина Str - результат 0.

·         Str As string Где искать:

·         Если Str = "" - результат 0.

·         Если Str = Null - результат Null.

·         SubStr As string Что искать:

·         Если SubStr = "" - результат start.

·         Если SubStr не найден - результат 0.

·         Если SubStr найден - результат позиция подстроки.

·         Если SubStr = Null - результат Null.

·         compare As integer Способ сравнения:

·         0 = vbBinaryCompare (по умолчанию)

·         1 = vbTextCompare

 

См. также:

1.11 Общесистемные инструменты и режимы