Collabora Office 23.05 Hjälp
I detta avsnitt finns grundläggande information om variabler i Collabora Office Basic.
Ett variabelnamn får vara högst 255 tecken långt. Det första tecknet i ett variabelnamn måste vara en bokstav mellan A och Z eller a och z. Du kan använda siffror i ett variabelnamn, men inte skiljetecken eller specialtecken (med undantag för understryckningstecken ("_"). Du kan inte använda å, ä eller ö i ett variabelnamn. I Collabora Office Basic är variabelnamn inte skiftlägeskänsliga. Variabelnamn kan innehålla blanksteg men måste i så fall omges av hakparenteser.
Exempel på variabelnamn:
MyNumber=5 'Correct'
MyNumber5=15 'Correct'
MyNumber_5=20 'Correct'
My Number=20 'Not valid, variable with space must be enclosed in square brackets'
[My Number]=12 'Correct'
DéjàVu=25 'Not valid, special characters are not allowed'
5MyNumber=12 'Not valid, variable may not begin with a number'
Number,Mine=12 'Not valid, punctuation marks are not allowed'
I Collabora Office Basic behöver du inte deklarera variabler explicit. En variabeldeklaration görs med uttrycket Dim. Du kan deklarera fler än en variabel åt gången genom att avgränsa namnen med ett kommatecken. Om du vill definiera variabelns typ använder du ett typdeklarationstecken efter namnet, eller motsvarande nyckelord.
Exempel på variabeldeklarationer:
Dim a$ 'Declares the variable "a" as a String'
Dim a As String 'Declares the variable "a" as a String'
Dim a$, b As Integer 'Declares one variable as a String and one as an Integer'
Dim c As Boolean 'Declares c as a Boolean variable that can be TRUE or FALSE'
När du har deklarerat en variabels typ kan du inte deklarera en variabel igen med samma namn fast av en annan datatyp.
When you declare multiple variables in a single line of code you need to specify the type of each variable. If the type of a variable is not explicitly specified, then Basic will assume that the variable is of the Variant type.
' Both variables "a" and "b" are of the Integer type
Dim a As Integer, b As Integer
' Variable "c" is a Variant and "d" is an Integer
Dim c, d As Integer
' A variable can also be explicitly declared as a Variant
Dim e As Variant, f As Double
The Variant type is a special data type that can store any kind of value. To learn more, refer to the section The Variant type below.
Du kan använda följande instruktion för att kräva explicita variabeldeklarationer:
Option Explicit
Instruktionen Option Explicit måste stå på den första raden i modulen, innan den första SUB-proceduren. Om instruktionen saknas måste endast matrisvariabler deklareras explicit. Vid implicit variabeldeklaration deklareras alla andra variabler med ett typdeklationstecken, eller (om typdeklationstecken saknas) som standardtypen Single.
Collabora Office Basic har stöd för fyra variabelklasser:
Numeriska variabler kan innehålla numeriska värden. Vissa variabler används för att lagra stora eller små heltal, och andra för flyttal eller bråk.
Strängvariabler innehåller textsträngar.
Logiska variabler av typen Boolean kan ha värdet TRUE eller FALSE.
Objektvariabler av typen Object kan innehålla olika typer av objekt, till exempel tabeller och dokument.
En heltalsvariabel kan ha ett värde mellan -32768 och 32767. Om du tilldelar en heltalsvariabel av typen Long ett flyttalsvärde, rundas talet av till närmaste heltalsvärde. Beräkningar med heltalsvariabler av typen Long är mycket snabba, och heltalsvariabler används ofta som räknare i repetitiva satser. En heltalsvariabel tar upp två byte minne. Typdeklarationstecknet för en heltalsvariabel är "%".
Dim Variable%
Dim Variable As Integer
En variabel av den här typen kan ha ett värde från -2147483648 till 2147483647. Om du tilldelar en heltalsvariabel ett flyttalsvärde, rundas talet av till närmaste heltalsvärde. Beräkningar med heltalsvariabler är mycket snabba, och heltalsvariabler används ofta som räknare i repetitiva satser. En variabel av typen Long tar upp fyra byte minne. Typdeklarationstecknet är "&".
Dim Variable&
Dim Variable As Long
Decimaltalsvariabler kan ta positiva eller negativa tal eller noll. Precisionen är upp till 29 siffror.
Du kan använda plustecken (+) eller minustecken (-) som prefix före decimaltal (med eller utan blanksteg).
Om ett decimaltal tilldelas till en heltalsvariabel, avrundar Collabora Office Basic siffran uppåt eller nedåt.
Single variables can take positive or negative values ranging from 3.402823 x 10E38 to 1.401298 x 10E-45. Single variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Single variables are suitable for mathematical calculations of average precision. Calculations require more time than for Integer variables, but are faster than calculations with Double variables. A Single variable requires 4 bytes of memory. The type-declaration character is "!".
Dim Variable!
Dim Variable As Single
Double variables can take positive or negative values ranging from 1.79769313486232 x 10E308 to 4.94065645841247 x 10E-324. Double variables are floating-point variables, in which the decimal precision decreases as the non-decimal part of the number increases. Double variables are suitable for precise calculations. Calculations require more time than for Single variables. A Double variable requires 8 bytes of memory. The type-declaration character is "#".
Dim Variable#
Dim Variable As Double
Valutavariabler lagras internt som 64-bitarsvärden (8 byte) och visas som ett fast decimaltal med 15 heltalsplatser och 4 decimaler. Värdeintervallet är -922337203685477,5808 till +922337203685477,5807. Valutavariabler används för att beräkna finansiella värden med hög precision. Typdeklarationstecknet är "@".
Dim Variable@
Dim Variable As Currency
Numbers can be encoded using octal and hexadecimal forms.
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
String variables can hold character strings with up to 2,147,483,648 characters. Each character is stored as the corresponding Unicode value. String variables are suitable for word processing within programs and for temporary storage of any non-printable character up to a maximum length of 2 Gbytes. The memory required for storing string variables depends on the number of characters in the variable. The type-declaration character is "$".
In BASIC String functions, the first character of the string has index 1.
Dim Variable$
Dim Variable As String
Logiska variabler av typen Boolean kan bara lagra ett av två värden: TRUE eller FALSE. Talet 0 returnerar FALSE, medan alla andra värden returnerar TRUE.
Dim Variable As Boolean
Datumvariabler kan endast innehålla tids- och datumvärden som lagras i ett internt numeriskt format. Värden som tilldelas en variabel av typen Date med funktionerna Dateserial, Datevalue, Timeserial eller Timevalue konverteras automatiskt till det interna formatet. Datumvariabler konverteras till vanliga tal med någon av funktionerna Day, Month eller Year, respektive Hour, Minute eller Second. Det interna formatet används för att två tids- eller datumvärden ska kunna jämföras. En datumvariabel kan endast deklareras med nyckelordet Date.
Dim Variable As Date
Date literals allow to specify unambiguous date variables that are independent from the current language. Literals are enclosed between hash signs #. Possible formats are:
#yyyy-mm-dd#
#mm/dd/yyyy#
start_date = #12/30/1899# ' = 1
dob = #2010-09-28#
Variables declared as Variant can handle any data type. This means that the actual data type is defined during runtime as a value is assigned to the variable.
There are three main ways to create a Variant variable, as shown below:
Dim varA ' The type is not specified, hence the variable is a Variant
Dim varB as Variant ' The variable is explicitly declared as a Variant
varC = "abc" ' Previously undeclared variables are treated as Variants
The example below uses the TypeName function to show how the type of a Variant variable changes upon assignment.
Dim myVar As Variant
MsgBox TypeName(myVar) ' Empty
myVar = "Hello!"
MsgBox TypeName(myVar) ' String
myVar = 10
MsgBox TypeName(myVar) ' Integer
A Variant variable is initialized with the Empty special data type. You can use the IsEmpty function to test if a variable is an Empty Variant.
You can also use the keyword Any to declare a variable as a Variant. However, Any is deprecated and is available for backward compatibility.
Arguments with type Variant or Any passed in function calls are not checked for their types.
Dim myVar As Any ' Variable "myVar" is a Variant
När en variabel har deklarerats antar den automatiskt värdet "Null". Observera följande konventioner:
Numeriska variabler får automatiskt värdet "0" när de har deklarerats.
Datumvariabler får det interna värdet 0, vilket motsvarar konvertering av "0" med funktionerna Day, Month och Year respektive Hour, Minute och Second.
Strängvariabler får värdet av en tom sträng ("") när de deklareras.
Collabora Office Basic stöder en- eller flerdimensionella matriser som definieras av en angiven variabeltyp. Matriser används till exempel för att redigera listor och tabeller i program. Enskilda matriselement kan anropas med hjälp av ett numeriskt index.
Matriser måste deklareras med uttrycket Dim. Det finns flera olika sätt att definiera en matris dimensioner:
Dim Text$(20) '21 elements numbered from 0 to 20'
Dim Text$(5,4) '30 elements (a matrix of 6 x 5 elements)'
Dim Text$(5 To 25) '21 elements numbered from 5 to 25'
Dim Text$(-15 To 5) '21 elements (including 0), numbered from -15 to 5'
Elementen i en matris kan ha positiva eller negativa index.
Konstanter har ett fast värde. De kan endast definieras på ett ställe i programmet och kan inte omdefinieras senare:
Const ConstName=Expression