Arbeiten mit Variablen

From LibreOffice Help
Jump to: navigation, search

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:

MeineZahl=5 Gültig
MeineZahl5=15 Gültig
MeineZahl_5=20 Gültig
Meine Zahl=20 Nicht korrekt, Variable enthält Leerzeichen und REM ist nicht in eckigen Klammern eingeschlossen
[Meine Zahl]=12 Korrekt trotz Leerzeichen, denn Variable steht in eckigen Klammern
Müller=25 Ungültig; Sonderzeichen sind nicht zulässig
5MeineZahl=12 Ungültig; Variablenname darf nicht mit einer Ziffer anfangen
Zahl,Meine=12 Nicht Korrekt, Variable enthält Satzzeichen

Deklarieren von Variablen

In LibreOffice Basic müssen 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$ Deklaration der Variable "a" als String
DIM a as STRING Deklaration der Variablen "a" als String
DIM a$, b as INTEGER Deklariert eine Variable als Zeichenkette (String) und eine weitere als Integer (Ganzzahl)
DIM c As Boolean Deklariert 'c' als Variable vom Typ Boolean, die die Werte TRUE (Wahr) oder FALSE (Falsch) annehmen kann.

Wichtig bei der Deklaration von Variablen ist, daß das Typendeklarationszeichen immer wieder verwendet werden muß, wenn es auch bei der Deklaration anstelle des Schlüsselwortes verwendet wurde. Die folgenden Zeilen sind also nicht statthaft:

DIM a$ Deklaration als String
a="Testzeichenkette" Falsch, es müßte "a$=" heißen
Warning.png 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!

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 müssen 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:

  • Numerische Variablen können Zahlenwerte enthalten. Bestimmte Variablentypen werden zum Speichern großer oder kleiner Zahlen verwendet, andere wiederum für Gleitkommazahlen oder Brüche.
  • Zeichenketten-Variablen enthalten Zeichenketten.
  • Boolesche Variablen enthalten entweder den Wert WAHR (TRUE) oder FALSCH (FALSE).
  • Objekt-Variablen können verschiedenartige Objekte wie z. B. Tabellen oder Dokumente in einem Dokument aufnehmen.

Integervariablen

Integer-Variablen haben einen Wertebereich von -32768 bis 32767. Wenn Sie einer Integer-Variable 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 Byte Speicher. Das Typ-Deklarationszeichen ist "%".

DIM Variable%

DIM Variable as INTEGER

Long-Integervariablen

Long-Integer-Variablen haben einen Wertebereich von -2147483648 bis 2147483647. Wenn Sie einer Long-Integer-Variable einen Gleitkommawert zuweisen, werden dessen Dezimalstellen auf die nächste ganze Zahl gerundet. Long-Integer-Variablen werden in Prozeduren schnell berechnet und eignen sich als Zählvariablen in Schleifen mit vielen Wiederholungen. Eine Long-Integer-Variable benötigt vier Byte Speicher. Das Typ-Deklarationszeichen ist "&".

DIM Variable&

DIM Variable as LONG

Dezimalvariablen

Dezimalvariablen 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

Single-Variablen können positive oder negative Werte von 3,402823 x 10E38 bis 1,401298 x 10E-45 aufnehmen. Single-Variablen sind Gleitkommavariablen. Dies bedeutet, dass die Genauigkeit der Nachkommastellen abnimmt, je größer der Betrag der Zahl vor dem Komma wird. Single-Variablen eignen sich für mathematische Berechnungen mit einfacher Genauigkeit. Die Berechnungen dauern länger als bei Integer-Variablen, gehen jedoch schneller vonstatten als Berechnungen mit Double-Variablen. Eine Single-Variable benötigt vier Byte Speicher. Das Typ-Deklarationszeichen ist "!".

DIM Variable!

DIM Variable as SINGLE

Double-Variablen

Double-Variablen können positive oder negative Werte von 1,79769313486232 x 10E308 bis 4,94065645841247 x 10E-324 aufnehmen. Double-Variablen sind Gleitkommavariablen. Dies bedeutet, dass die Genauigkeit der Nachkommastellen abnimmt, je größer der Betrag der Zahl vor dem Komma wird. Double-Variablen eignen sich für genauere Berechnungen. Die Berechnungen dauern länger als bei Single-Variablen. Eine Double-Variable benötigt acht Byte Speicher. Das Typ-Deklarationszeichen ist "#".

DIM Variable#

DIM Variable as DOUBLE

Currency-Variablen

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

String-Variablen

Zeichenkettenvariablen (String-Variablen) können Zeichenketten mit bis zu 65.535 Zeichen Länge aufnehmen. Jedes Zeichen wird mit seinem Unicode-Wert gespeichert. Zeichenkettenvariablen eignen sich für die Textverarbeitung innerhalb von Programmen sowie für die temporäre Speicherung von Sonderzeichen bis zu einer maximalen Länge von 64 KByte. Der benötigte Speicher für eine Zeichenkettenvariable richtet sich danach, wie viele Zeichen sie enthält. Das Typ-Deklarationszeichen ist "$".

DIM Variable$

DIM Variable as STRING

Boolean-Variablen

Boolesche Variablen können nur zwei verschiedene Werte aufnehmen: WAHR (TRUE) oder FALSCH (FALSE). Boolesche Variablen werden zur Speicherung von Binärwerten (wie z. B. 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 (Date-Variablen) 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 bzw. Hour, Minute, Second in normale Zahlen konvertiert werden. Das interne Format ermöglicht einen Vergleich von Datums-/Zeitwerten durch die Berechnung der Differenz zweier Zahlen. Diese Variablen können nur mit dem Schlüsselwort Date deklariert werden.

DIM Variable as DATE

Variablen-Anfangswerte

Sobald eine Variable deklariert wird, ist Sie automatisch auf den "Null"-Wert zurückgesetzt, d. h., daß der Programmierer nicht darauf achten muß, daß eine Variable, die deklariert wurde, manuell auf einen Basis-Wert zurückgesetzt werden muß. 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.

String-Variablen wird direkt bei der Deklaration ein Leerstring ("") 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 einer Dim-Anweisung deklariert werden. Zur Definition des Indexbereichs eines Arrays gibt es mehrere Möglichkeiten:

DIM text$(20) 21 Elemente, von 0 bis 20 durchnummeriert
DIM text$(5,4) 30 Elemente (eine Matrix aus 6 x 5 Elementen)
DIM text$(5 to 25) 21 Elemente, von 5 bis 25 durchnummeriert
DIM text$(-15 to 5) 21 Elemente (das 0. ebenfalls!), von -15 bis 5 durchnummeriert

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=Ausdruck