Variablen

Variablen sind im Sourcecode durch Bezeichner benannte Speicherzellen im Arbeitsspeicher (SRAM) oder Eeprom (ERAM). Ihnen können Werte zugewiesen werden, um sie an anderer Stelle auszulesen.

Ausführliche Beschreibung (Wikipedia)

Dimensionierung

Variablen werden mit Dim (Arbeitsspeicher) und/oder eeDim (Eeprom) dimensioniert (erzeugt/angelegt).

Methoden/Eigenschaften

Variablen besitzen Objekteigenschaften:

Eigenschaften der numerischen Standard-Variablen (boolean, byte, word, integer, long, single, ..)
Name Beschreibung Typ read/write
.0-x1) Bit n des Variablenwertes boolean read+write
.LowNibble Low-Nibble des Variablenwertes byte read+write
.HighNibble High-Nibble des Variablenwertes byte read+write
.Nibblen Nibble n (1-8) des Variablenwertes byte read+write
.Byten2) Byte n (1-4) des Variablenwertes byte read+write
.LowByte3) Low-Byte des Variablenwertes byte read+write
.HighByte4) High-Byte des Variablenwertes byte read+write
.LowWord5) Niederwertiges Word des Variablenwertes word read+write
.HighWord6) Höherwertiges Word des Variablenwertes word read+write
.Reverse7) Byte-Anordnung umdrehen, siehe auch CE16(), CE32() word, long read
.Addr8) Adresse der Variable9) word read
.Ptr10) Adresse des MemoryBlocks word read
.SizeOf Vom Datentyp belegte Anzahl Bytes lesen. byte read
Methoden von Byte und Word-Arrays11)
Name Beschreibung
.Sort Arraywerte aufsteigend sortieren (sehr schneller Qsort-Algorithmus)

Benutzerdefinierte Datentypen

Benutzerdefinierte Datentypen mittels Struct erben die Methoden/Eigenschaften der jeweilig in der Struktur deklarierten Elemente.

String und MemoryBlock

Die Datentypen String und MemoryBlock besitzten weitere Methoden bzw. Eigenschaften.

Verwendung

Variablen müssen dimensioniert werden, bevor man sie verwenden kann. Variablen speichern Werte entsprechend ihres Datentyps.

Siehe auch: Dim, Abschnitt "Sichtbarkeit von Variablen"

Zugriff auf einzelne Bits einer Variable

Wie in der obigen Tabelle ersichtlich, kann man auf einzelne Bits einer Variable zugreifen und diese lesen oder schreiben. Der Zugriff auf ein Bit ist auch mit einer weiteren Variable möglich, welche die Bit-Nummer enthält:

Beispiel:

Der Zugriff mit einem konstanten Wert ist in der Ausführungsgeschwindigkeit jedoch schneller:

Beispiel:

Beispiel

dim a,b as byte
dim c as word
dim s as string
 
c=&ha1b2      ' Wert zuweisen, Hexadezimal (liegen rückwärts im Speicher da Hexwert immer Big-Endian)
a=c.LowByte   ' Low-Byte des Variablenwertes lesen, Ergebnis: &hb2
b=c.HighByte  ' High-Byte des Variablenwertes lesen, Ergebnis: &ha1
c.LowByte=b   ' vertauscht wieder hineinschreiben
c.HighByte=a
 
c.0=1         ' Bit 0 in c setzen
a=b.7         ' Bit 7 von b lesen
a=3
c=b.a         ' Bit 3 von b lesen, Bitnummer steht in a
 
Print "&h"+hex(c)  ' Ausgabe: &hb2a1
s = "Hallo"        ' Text zuweisen
a = s.ByteValue(1) ' Dezimalwert des 1. Zeichens vom im String gespeicherten Text lesen

Siehe auch

1) Alle numerischen Datentypen
2) Nur long, single
3) , 4) Nur word, integer
5) , 6) Nur long, longint, single
7) Nur long, longint, integer, word
8) Alle numerischen Datentypen und Strukturen. Bei Arrays die Startadresse des Arrays
9) Adresse bezogen auf den Speicherbereich in dem die Variable liegt, Arbeitsspeicher oder Eeprom.
10) Die intrinsischen Datentypen string, memoryblock
11) Ab Version 2013.r1 build 4612