Помощ за Collabora Office 24.04
По-долу са описани основите на работата с променливи в Collabora Office Basic.
Имената на променливи не могат да надхвърлят дължина от 255 знака. Първият знак от името на променлива трябва да бъде латинска буква от A до Z или от a до z. В имената на променливи могат да се използват и цифри, но препинателни и специални знаци не се допускар, с изключение на знака долна черта (_). В Collabora Office Basic идентификаторите на променливи са нечувствителни към регистъра. Имената на променливи могат да съдържат интервали, но в такъв случай трябва да са оградени с квадратни скоби.
Примери за идентификатори на променливи:
MyNumber=5 'Правилно'
MyNumber5=15 'Правилно'
MyNumber_5=20 'Правилно'
My Number=20 'Неправилно, променлива с интервал трябва да е оградена в квадратни скоби'
[My Number]=12 'Правилно'
DéjàVu=25 'Неправилно, не се допускат специални знаци'
5MyNumber=12 'Неправилно, променлива не може да започва с число'
Number,Mine=12 'Неправилно, не се допускат пунктуационни знаци'
В Collabora Office Basic не е задължително да декларирате изрично променливите. Обявяването на променлива се извършва с оператора Dim. Можете да декларирате няколко променливи наведнъж, като разделите имената им със запетая. За да дефинирате типа на променливата, използвайте или знак за декларация на тип след името, или съответната ключова дума.
Примери за декларации на променливи:
Dim a$ 'Обявява променливата "a" от тип String'
Dim a As String 'Обявява променливата "a" от тип String'
Dim a$, b As Integer 'Обявява една променлива от тип String и една от тип Integer'
Dim c As Boolean 'Обявява c като променлива от тип Boolean с възможни стойности TRUE и FALSE'
След като сте декларирали променлива като принадлежаща на определен тип, не можете да декларирате променлива със същото име от друг тип!
Когато обявите няколко променливи на един ред от кода, трябва да зададете типа на всяка от тях. Ако типът на променлива не е зададен явно, Basic приема, че тя е от тип Variant.
' И двете променливи „a“ и „b“ са от тип Integer
Dim a As Integer, b As Integer
' Променливата „c“ е Variant, а „d“ – Integer
Dim c, d As Integer
' Променлива може да бъде и изрично декларирана като Variant
Dim e As Variant, f As Double
Типът Variant е специален тип данни, който позволява съхранение на произволен вид стойност. За да научите повече, вижте раздела Типът Variant по-долу.
За да направите обявяването на променливите задължително, използвайте следната команда:
Option Explicit
Операторът OPTION EXPLICIT трябва да бъде на първия ред от модула, преди първия блок SUB. Обикновено само масивите трябва да се обявяват изрично. Всички останали променливи се декларират според знака за тип или – ако той е пропуснат – като принадлежащи на подразбирания тип Single.
Collabora Office Basic поддържа четири вида променливи:
Числови променливи, които могат да съдържат числови стойности. Някои променливи служат за съхраняване на много големи или много малки числа, а други – за съхраняване на дробни числа или числа с плаваща запетая.
Низови променливи, които съдържат знакови низове.
Булеви променливи, съдържащи стойност TRUE или FALSE.
Обектни променливи, съхраняващи обекти от различни типове, например таблици или документи.
Целочислените променливи приемат стойности от -32768 до 32767. Ако присвоите стойност с плаваща запетая на целочислена променлива, стойността ще бъде закръглена до най-близкото цяло число. С целочислените променливи се работи бързо и те са подходящи за броячи в цикли. Целочислените променливи заемат само по два байта в паметта. Техният знак за деклариране на тип е „%“.
Dim Variable%
Dim Variable As Integer
Дългите целочислени променливи приемат стойности от -2147483648 до 2147483647. Ако присвоите стойност с плаваща запетая на дълга целочислена променлива, стойността ще бъде закръглена до най-близкото цяло число. С дългите целочислени променливи се работи бързо и те са подходящи за броячи в цикли с големи стойности. Дългите целочислени променливи заемат по четири байта в паметта. Техният знак за деклариране на тип е „&“.
Dim Variable&
Dim Variable As Long
Десетичните променливи могат да приемат положителни, отрицателни и нулеви стойности. Точността им е до 29 цифри.
Можете да използвате знаците плюс (+) и минус (-) като префикси за десетични числа (с или без интервал).
Ако присвоите десетично число на целочислена променлива, Collabora Office Basic ще го закръгли нагоре или надолу.
Променливите с единична точност приемат положителни или отрицателни стойности от 3,402823.10^38 до 1,401298.10^-45. Това са променливи с плаваща запетая, в които точността спада с удължаването на цялата част от стойността. Променливите с единична точност са подходящи за средно точни математически пресмятания. С тях се работи по-бавно, отколкото с целочислените, но по-бързо, отколкото с тези с двойна точност. Променливите с единична точност заемат по четири байта в паметта. Техният знак за деклариране на тип е „!“.
Dim Variable!
Dim Variable As Single
Променливите с двойна точност приемат положителни или отрицателни стойности от 1,79769313486232.10^308 до 4,94065645841247.10^-324. Това са променливи с плаваща запетая, в които точността спада с удължаването на цялата част от стойността. Променливите с двойна точност са подходящи за точни пресмятания. С тях се работи по-бавно, отколкото с тези с единична точност. Променливите с двойна точност заемат по осем байта в паметта. Техният знак за деклариране на тип е „#“.
Dim Variable#
Dim Variable As Double
Променливите за парични суми се съхраняват вътрешно като 64-битови числа (8 байта) и се изобразяват като десетични числа с фиксирана запетая, с 15-цифрена цяла и 4-цифрена дробна част. Стойностите им варират от -922337203685477,5808 до +922337203685477,5807. Тези променливи се използват за валутни изчисления с висока точност. Съответният знак за деклариране на тип е „@“.
Dim Variable@
Dim Variable As Currency
Числата могат да се кодират в осмична и в шестнадесетична бройна система.
xi = &o13 ' 8 + 3
ci = &h65 ' 6*16 + 5
MAX_Integer = &o77777 ' 32767 = &h7FFF
MIN_Integer = &o100000 ' -32768 = &h8000
MAX_Long = &h7fffffff ' 2147483647 = &o17777777777
MIN_Long = &h80000000 ' -2147483648 = &o20000000000
Низовите променливи могат да съдържат знакови низове с дължина до 2 147 483 648 знака. Всеки знак се съхранява като съответната стойност от Уникод. Низовите променливи са подходящи за обработка на текст в програми и за временно съхраняване на непечатни знаци с дължина до 2 ГБ. Необходимата памет за съхранение на низова променлива зависи от броя знаци в нея. Знакът за деклариране на тип е „$“.
Във функциите на BASIC за низове първият знак на низа има индекс 1.
Dim Variable$
Dim Variable As String
Булевите променливи могат да съдържат само две стойности: TRUE (истина) или FALSE (лъжа). Числото 0 има стойност FALSE, а всички останали числа се считат за TRUE.
Dim Variable As Boolean
Променливите за дати могат да съдържат само дати и часове, съхранявани във вътрешен формат. Стойностите, присвоявани на променливите за дати с функциите Dateserial, Datevalue, Timeserial и Timevalue, автоматично се преобразуват във вътрешния формат. Променливите за дати се преобразуват в обикновени числа чрез функциите Day, Month, Year или Hour, Minute, Second. Вътрешният формат позволява сравняване на дати и часове чрез изчисляване на разликата между две числа. Тези променливи могат да се декларират само с ключовата дума Date.
Dim Variable As Date
Литералите за дати позволяват задаване на еднозначни променливи за дати, независими от текущия език. Литералите са оградени със знак диез #. Възможните формати са:
#yyyy-mm-dd#
#mm/dd/yyyy#
start_date = #12/30/1899# ' = 1
dob = #2010-09-28#
Променливите, декларирани като Variant, могат да съдържат данни от всякакъв тип. Това означава, че действителният тип данни се определя по време на изпълнение, когато на променливата се присвои стойност.
Има три основни начина да се създаде променлива от тип Variant, както е показано по-долу:
Dim varA ' Типът не е зададен, следователно променливата е от тип Variant
Dim varB as Variant ' Променливата е изрично декларирана като Variant
varC = "abc" ' Недекларираните променливи се смятат за Variant
В примера по-долу е използвана функцията TypeName, за да се покаже как типът на променлива, декларирана като Variant, се променя при присвояване.
Dim myVar As Variant
MsgBox TypeName(myVar) ' Empty
myVar = "Hello!"
MsgBox TypeName(myVar) ' String
myVar = 10
MsgBox TypeName(myVar) ' Integer
Променливите, декларирани като Variant, се инициализират със специалния тип данни Empty. С функцията IsEmpty можете да проверите дали дадена променлива е Empty Variant.
Ключовата дума Any също може да се използва за деклариране на променлива като Variant. Any обаче е отхвърлена и се поддържа само заради обратна съвместимост.
Аргументите с тип Variant или Any, предадени при обръщение към функция, не се проверяват по тип.
Dim myVar As Any ' Променливата "myVar" е Variant
Още при декларирането на променливата автоматично й се присвоява стойността „Null“. Обърнете внимание на следните правила:
Числовите променливи автоматично получават стойност 0 при обявяването си.
На променливите за дати се присвоява вътрешно стойност 0. Това е еквивалентно на преобразуването на стойността до „0“ с функциите Day, Month, Year или Hour, Minute, Second.
На низовите променливи при обявяването им се присвоява празен низ ("").
Collabora Office Basic поддържа едномерни и многомерни масиви, дефинирани със специален вид променлива. Масивите са подходящи за редактиране на списъци и таблици в програмите. Отделните елементи на масив могат да се адресират чрез числов индекс.
Масивите трябва да бъдат обявени с оператора Dim. Има няколко начина за дефиниране на диапазона от индекси на масив:
Dim Text$(20) '21 елемента, номерирани от 0 до 20'
Dim Text$(5,4) '30 елемента (матрица от 6 x 5 елемента)'
Dim Text$(5 To 25) '21 елемента, номерирани от 5 до 25'
Dim Text$(-15 To 5) '21 елемента (включително 0), номерирани от -15 до 5'
Диапазонът от индекси може да включва както положителни, така и отрицателни числа.
Константите имат фиксирана стойност. Те се задават само веднъж в програмата и след това не могат да се предефинират:
Const ConstName=Expression