Verwendung von Variablen

Im Folgenden ist die grundlegende Verwendung von Variablen in LibreOffice Basic beschrieben.

Konventionen bei der Vergabe von Variablennamen

Variablennamen d├╝rfen maximal 255 Zeichen lang sein. Variablennamen m├╝ssen mit einem Buchstaben (A-Z oder a-z) anfangen. Innerhalb eines Variablennamens k├Ânnen auch Ziffern verwendet werden. Satzzeichen oder Sonderzeichen sind jedoch mit Ausnahme des Unterstrichs ("_") nicht zul├Ąssig. Bei Variablenbezeichnern wird in LibreOffice Basic nicht zwischen Gro├č- und Kleinschreibung unterschieden. Variablennamen d├╝rfen Leerzeichen enthalten, m├╝ssen in diesem Fall jedoch in eckige Klammern eingeschlossen werden.

Beispiele f├╝r Variablenbezeichner:


    MyNumber=5      'Korrekt'
    MyNumber5=15    'Korrekt'
    MyNumber_5=20   'Korrekt'
    My Number=20    'Nicht g├╝ltig, Variable mit Leerzeichen muss in eckigen Klammern stehen'
    [My Number]=12  'Korrekt'
    D├ęj├áVu=25       'Nicht g├╝ltig, Sonderzeichen sind nicht erlaubt'
    5MyNumber=12    'Nicht g├╝ltig, Variable darf nicht mit einer Zahl beginnen'
    Number,Mine=12  'Nicht g├╝ltig, Satzzeichen sind nicht erlaubt'

Variablen deklarieren

In LibreOffice Basic brauchen Variablen nicht explizit deklariert werden. Variablendeklarationen sind ├╝ber die Anweisung Dim m├Âglich. Sie k├Ânnen mehrere Variablen gleichzeitig deklarieren, indem Sie die Namen durch Kommata trennen. Zur Definition des Variablentyps k├Ânnen Sie entweder ein Typ-Deklarationszeichen hinter dem Namen oder aber das entsprechende Schl├╝sselwort verwenden.

Beispiele f├╝r Variablendeklarationen:


    Dim a$               'Deklariert die Variable "a" als String'
    Dim a As String      'Deklariert die Variable "a" als String'
    Dim a$, b As Integer 'Deklariert eine Variable als String und eine als Integer'
    Dim c As Boolean     'Deklariert c als boolesche Variable, die TRUE oder FALSE sein kann'
warning

Variablen mit einem bestimmten Namen, die einmal als bestimmter Typ deklariert wurden, d├╝rfen unter dem gleichen Namen nicht nochmals als anderer Typ deklariert werden!


Wenn Sie mehrere Variablen in einer einzigen Codezeile festlegen, m├╝ssen Sie den Typ jeder Variable angeben. Wenn der Typ einer Variable nicht eindeutig angegeben wird, geht Basic davon aus, dass die Variable vom Typ Variant ist.


  ' Beide Variablen "a" und "b" sind vom Typ Integer.
  Dim a As Integer, b As Integer
  ' Variable "c" ist vom Typ Variant und "d" ist eine Ganzahl
  Dim c, d As Integer
  ' Eine Variable kann auch eindeutig als Variant festgelegt werden
  Dim e As Variant, f As Double
note

Der Typ Variant ist ein besonderer Datentyp, der jede Art von Werten speichern kann. Wenn Sie mehr lernen m├Âchten, lesen Sie den Abschnitt Der Typ Variant weiter unten.


Erzwingung von Variablendeklarationen

Um die Deklaration von Variablen zu erzwingen, verwenden Sie folgenden Befehl:


Option Explicit

Die Anweisung Option Explicit muss in der ersten Zeile des Moduls noch vor dem ersten SUB stehen. Im Allgemeinen brauchen nur Arrays explizit deklariert werden. Alle anderen Variablen werden gem├Ą├č des Typ-Deklarationszeichens oder (falls dieses fehlt) als Standardtyp Single deklariert.

Variablentypen

LibreOffice Basic unterst├╝tzt vier Variablenklassen:

Integer-Variablen

Integer-Variablen haben einen Wertebereich von -32768 bis 32767. Wenn Sie einer Integer-Variablen einen Gleitkommawert zuweisen, werden dessen Dezimalstellen auf die n├Ąchste ganze Zahl gerundet. Integer-Variablen werden in Prozeduren schnell berechnet und eignen sich als Z├Ąhlvariablen in Schleifen. Eine Integer-Variable belegt lediglich zwei Bytes an Arbeitsspeicher. Das Typ-Deklarationszeichen ist "%".


Dim Variable%
Dim Variable As Integer

Longinteger-Variablen

Longinteger-Variablen haben einen Wertebereich von -2147483648 bis 2147483647. Wenn Sie einer Longinteger-Variablen einen Gleitkommawert zuweisen, werden dessen Dezimalstellen auf die n├Ąchste ganze Zahl gerundet. Longinteger-Variablen werden in Prozeduren schnell berechnet und eignen sich als Z├Ąhlvariablen in Schleifen mit vielen Wiederholungen. Eine Longinteger-Variable ben├Âtigt vier Bytes an Arbeitsspeicher. Das Typ-Deklarationszeichen ist "&".


Dim Variable&
Dim Variable As Long

Dezimal-Variablen

Dezimal-Variablen k├Ânnen positive oder negative Zahlen oder Null aufnehmen. Die Genauigkeit betr├Ągt maximal 29 Stellen.

Als Vorzeichen f├╝r Dezimalzahlen k├Ânnen Sie das Plus- (+) oder Minuszeichen (-) verwenden (mit oder ohne Leerzeichen).

Wenn eine Dezimalzahl einer Integer-Variable zugewiesen wird, rundet LibreOffice Basic den Wert auf oder ab.

Single-Variablen

Einfache Variablen k├Ânnen positive oder negative Werte von 3,402823x10E38 bis 1,401298x10E-45 annehmen. Einfache Variablen sind Flie├čkommavariablen, in welchen die Dezimalpr├Ązision sinkt, wenn der nicht-dezimale Teil der Nummer steigt. Einfache Variablen sind geeignet f├╝r mathematische Berechnungen mit durchschnittlicher Genauigkeit. Berechnungen erfordern mehr Zeit als bei Integer-Variablen, sind aber schneller als Double-Variablen. Eine einfache Variable ben├Âtigt 4 Bytes Speicher. Das Zeichen der Typdeklaration ist "!".


Dim Variable!
Dim Variable As Single

Double-Variablen

Doppelvariablen k├Ânnen positive oder negative Werte im Bereich von 1,79769313486232x10E308 bis 4,94065645841247x10E-324 enthalten. Doppelvariablen sind Gleitkomma-Variablen, bei denen die Dezimalgenauigkeit mit zunehmendem nicht-dezimalen Teil der Zahl abnimmt. Doppelvariablen sind f├╝r pr├Ązise Berechnungen geeignet. Die Berechnung ben├Âtigen mehr Zeit als f├╝r Einzelvariablen. Eine Doppelvariabel braucht 8 Bytes Speicher. Das Typdeklarationszeichen ist "#".


Dim Variable#
Dim Variable As Double

Currency-Variablen (W├Ąhrungsvariablen)

W├Ąhrungsvariablen (Currency-Variablen) werden intern als 64-Bit-Zahlen (8 Byte) gespeichert und als Festkommazahlen mit 15 Vor- und 4 Nachkommastellen dargestellt. Der g├╝ltige Wertebereich ist -922337203685477,5808 bis +922337203685477,5807. W├Ąhrungsvariablen werden verwendet, um W├Ąhrungsberechnungen mit hoher Pr├Ązision anzustellen. Das Typ-Deklarationszeichen ist "@".


Dim Variable@
Dim Variable As Currency

Buchstaben f├╝r ganze Zahlen

Nummern k├Ânnen codiert werden, indem das Oktal- und Hexadezimalsystem verwendet wird.


  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-Variablen

Zeichenketten-Variablen k├Ânnen Zeichenketten mit bis zu 2.147.483.648 Zeichen enthalten. Jedes Zeichen wird als entsprechender Unicode-Wert gespeichert. Zeichenketten-Variablen eignen sich f├╝r die Textverarbeitung innerhalb von Programmen und f├╝r die vor├╝bergehende Speicherung von nicht druckbaren Zeichen bis zu einer maximalen L├Ąnge von 2 GByte. Der zum Speichern von Zeichenketten-Variablen erforderliche Arbeitsspeicher h├Ąngt von der Anzahl der Zeichen in der Variablen ab. Das Typ-Deklarationszeichen ist "$".

tip

Bei String-Funktionen in BASIC hat das erste Zeichen der Zeichenkette den Index 1.



Dim Variable$
Dim Variable As String

Boolean-Variablen (boolesche Variablen)

Boolesche Variablen k├Ânnen nur zwei verschiedene Werte aufnehmen: WAHR (TRUE) oder FALSCH (FALSE). Boolesche Variablen werden zur Speicherung von Bin├Ąrwerten, wie beispielsweise dem Ergebnis einer Vergleichsoperation, verwendet und intern durch einen 2-Byte-Integerwert dargestellt. Alle Werte, die Sie einer booleschen Variablen zuweisen, werden zu TRUE konvertiert, sofern sie nicht genau 0 sind.


Dim Variable As Boolean

Date-Variablen (Datumsvariablen)

Datumsvariablen k├Ânnen nur Datums- und Zeitwerte enthalten, die in einem internen Format gespeichert werden. Werte, die einer Datumsvariablen ├╝ber Dateserial, Datevalue, Timeserial oder Timevalue zugewiesen werden, werden automatisch in das interne Format konvertiert. Datumsvariablen k├Ânnen ├╝ber die Funktionen Day, Month, Year beziehungsweise Hour, Minute, Second in normale Zahlen konvertiert werden. Das interne Format erm├Âglicht einen Vergleich von Datums- und Zeitwerten durch die Berechnung der Differenz zweier Zahlen. Diese Variablen k├Ânnen nur mit dem Schl├╝sselwort Date deklariert werden.


Dim Variable As Date

Ausdr├╝cke f├╝r Daten

Datumsausdr├╝cke erm├Âglichen die Angabe eindeutiger Datumsvariablen, die unabh├Ąngig von der aktuellen Sprache sind. Ausdr├╝cke sind zwischen Rauten # eingeschlossen. M├Âgliche Formate sind:


  zeroDay = #12/30/1899#
  dob = #2010-09-28#

Der Typ Variant

Variablen, die als Variant festgelegt sind, k├Ânnen jeden Datentyp verarbeiten. Das bedeutet, dass der eigentliche Datentyp w├Ąhrend der Laufzeit festgelegt wird, wenn ein Wert der Variable zugewiesen wird.

Es gibt drei Hauptm├Âglichkeiten zum Erstellen einer Variable vom Typ Variant, wie unten gezeigt:


  Dim varA            ' Der Typ ist nicht angegeben, daher ist die Variable vom Typ Variant
  Dim varB as Variant ' Die Variable ist eindeutig als Variant festgelegt
  varC = "abc"        ' Zuvor nicht festgelegte Variablen werden als Variant behandelt

Das Beispiel unterhalb verwendet die Funktion TypeName, um zu zeigen, wie der Typ einer Variable Variant sich bei der Zuweisung ├Ąndert.


  Dim myVar As Variant
  MsgBox TypeName(myVar) ' Empty
  myVar = "Hello!"
  MsgBox TypeName(myVar) ' String
  myVar = 10
  MsgBox TypeName(myVar) ' Integer
note

Eine Variable Variant ist initialisiert mit dem besonderen Datentyp Empty. Sie k├Ânnen die Funktion IsEmpty verwenden, um zu pr├╝fen, ob eine Variable vom Typ Empty Variant ist.


Sie k├Ânnen auch das Schl├╝sselwort Any verwenden, um eine Variable als Variant festzulegen. Any ist jedoch veraltet und nur aus Gr├╝nden der Abw├Ąrtskompatibilit├Ąt verf├╝gbar.

warning

Argumente vom Typ Variant oder Any, die in Funktionsaufrufen ├╝bergeben werden, werden nicht auf ihre Typen ├╝berpr├╝ft.



  Dim myVar As Any ' Variable "myVar" ist vom Typ Variant

Variablen-Anfangswerte

Sobald eine Variable deklariert wird, ist Sie automatisch auf den "Null"-Wert zur├╝ckgesetzt, das hei├čt, dass der Programmierer nicht darauf achten muss, dass eine Variable, die deklariert wurde, manuell auf einen Basis-Wert zur├╝ckgesetzt werden muss. Es gilt folgende Regel:

Numerischen Variablen wird automatisch der Wert "0" zugewiesen, sobald die Variable deklariert wurde.

Datumsvariablen wird intern der Wert 0 zugewiesen. Dies entspricht einer Konvertierung des Wertes "0" mit den Funktionen Day, Month, Year oder Hour, Minute, Second.

Zeichenketten-Variablen wird direkt bei der Deklaration eine leere Zeichenkette ("") zugewiesen.

Arrays

LibreOffice Basic kann mit ein- oder mehrdimensionalen Arrays umgehen, die durch einen angegebenen Variablentyp definiert werden. Arrays eignen sich zum Bearbeiten von Listen und Tabellen in Programmen. Die einzelnen Elemente eines Arrays k├Ânnen ├╝ber einen numerischen Index adressiert werden.

Arrays m├╝ssen mit der Anweisung Dim deklariert werden. Zur Definition des Indexbereichs eines Arrays gibt es mehrere M├Âglichkeiten:


    Dim Text$(20)       '21 Elemente von 0 bis 20 nummeriert'
    Dim Text$(5,4)      '30 Elemente (eine Matrix mit 6 x 5 Elementen)'
    Dim Text$(5 To 25)  '21 Elemente, von 5 bis 25 nummeriert'
    Dim Text$(-15 To 5) '21 Elemente (einschlie├člich 0), von -15 bis 5 nummeriert'

Der Indexbereich kann sowohl positive als auch negative Zahlen umfassen. Maximal k├Ânnen ├╝ber einen Index 16368 Elemente adressiert werden.

Konstanten

Konstanten haben einen festen Wert. Sie werden im Programm nur einmal definiert und k├Ânnen sp├Ąter nicht mehr umdefiniert werden:


Const ConstName=Expression

Bitte unterst├╝tzen Sie uns!