Referenz - DATA
Syntax: DATA Konstante [, Konstante [,...]]
Typ: Anweisung
Kategorie: Speicher
DATA speichert Konstanten im Programm, die mit READ eingelesen werden können. Als Werte lassen sich STRINGs und Zahlen, aber auch Konstanten-Namen und einfache Rechenausdrücke. verwenden. Variablen-Namen können in DATA-Anweisungen nicht verwendet werden.
DATA-Anweisungen sind keine ausführbaren Anweisungen und stehen normalerweise am Ende vom Programm.
Beispiel 1: Werte in DATA-Zeilen speichern:
DATA 1, 2, 3, 4, 17, 21, 42, "Hello", "World"
DATA 3.1412, 4*ATN(1), ATAN2(0, -1), (17+4)*2, "Hello, " & " World!"
Der Zugriff auf die mit DATA gespeicherten Daten erfolgt über READ.
Dabei muss der Programmierer darauf achten, dass die Werte auch Variablen mit entsprechendem Datentyp zugewiesen werden. Werden Werte in nicht dazu passende Variablen eingelesen, so werden sie zuvor mittels STR, VALINT bzw. der passenden Entsprechung umgewandelt.
Beispiel 2: 9 gespeicherte Daten einlesen:
DIM height(1 to 7) AS INTEGER
DIM AS STRING s1, s2
FOR a AS INTEGER = 1 TO 7
READ height(a)
NEXT
READ s1, s2
PRINT s1 & s2
DATA 1, 2, 3, 4, 17, 21, 42, "Hello,", " World"
SLEEP
Beispiel 3:
Dim As Integer h(4)
Dim As String hs
Dim As Integer readindex
' Daten in das Array einlesen
For readindex = 0 To 4
Read h(readindex) ' Integer einlesen
Print "Number" ; readindex ; " = " ; h(readindex)
Next readindex
Print
Read hs ' String einlesen
Print "String = " & hs
Sleep
' Datenblock.
Data 3, 234, 435/4, 23+433, 87643, "Good" & "Bye!"
Achten Sie darauf, nicht mehr Daten einlesen zu wollen, als über DATA zur Verfügung stehen! Wenn Sie eine Zahl einlesen wollen, aber kein DATA-Eintrag mehr vorhanden ist, wird der Wert 0 eingelesen. Versuchen Sie jedoch über das DATA-Ende hinaus einen STRING einzulesen, bricht das Programm mit einem "Segmentation fault" ab.
Mit DATA gespeicherte Werte können nur einmal eingelesen werden. Durch jede READ-Anweisung wird der jeweils nächste Wert in der Liste der DATAs eingelesen. Durch RESTORE können Daten mehrfach eingelesen werden. Nach einem RESTORE-Aufruf liest die nächste READ-Anweisung wieder von der ersten DATA-Konstante, bzw. nach dem angegeben Label. Siehe dazu das Beispiel zu RESTORE.
DATA ist eine früher häufig verwendete Methode, um Konstanten im Programm zu speichern, heutzutage sind einfache Arrays allerdings viel üblicher.
Unterschiede zu QB:
- Strings müssen in FreeBASIC (außer in -lang qb) in "Anführungszeichen" stehen; sie werden sonst als Werte von Funktionen behandelt.
- Leere DATA-Elemente werden in QB als 0 bzw. als leerer String "" behandelt, in FreeBASIC führen sie zu einem Compilerfehler.
Unterschiede zu früheren Versionen von FreeBASIC:
- In den FreeBASIC-Versionen 0.15 und 0.16 war es möglich, DATA-Blöcke in Prozeduren zu verwenden. In den Versionen zuvor und danach ist dies nicht möglich.
Unterschiede unter den FB-Dialektformen:
- In den Dialektformen -lang fb und -lang fblite werden DATA-Zeilen wie Konstanten behandelt, die zur Compilezeit aufgelöst werden.
- In der Dialektform -lang qb wird jede Buchstaben- und Zeichenfolge als String behandelt, auch wenn keine Anführungszeichen gesetzt sind.
Siehe auch:
READ, RESTORE, Verschiedenes
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|