DATA/de
Contents |
= (**COPIED FROM ENGLISH PAGE**) === Action
Specifies constant values to be read by subsequent READ statements.
Syntax
DATA var [, varn]
Anmerkungen
var |
Numerische- oder Zeichenketten-Konstante. |
Es wird das interne Registerpaar R8 und R9 verwendet um dan DAtenzeiger zu speichern.
Um ein " Zeichen in einer DATA-Zeile zu speichern kann man
DATA $34
benutzen.
Das $-Zeichen sagt dem Compiler dass ein ASCII-Zeichen folgt.
Dies kann auch benutzt werden um Sonderzeichen zu speichern, die nicht mit dem Editor geschrieben werden können wie zum Beispiel chr(7).
Eine andere Möglichkeit, ASCII-Sonderzeichen in einer Zeichenkette einzuschließen ist, {XXX} zu benutzen. Man muss genau 3 Ziffern benutzen, die das ASCII-Zeichen representieren. Zum Beispiel ist 65 die ASCII-Zahl für den Buchstaben A.
DATA "TEST{065}"
Wird gelesen als TESTA.
Während :
DATA "TEST{65}" gelesen wird als:
TEST{65} weil nur 2 Ziffern geschrieben wurden statt 3.
{xxx} funktioniert nur mit Zeichenkettenkonstanten. Es funktioniert auch bei einer normalen Zeichenkettenzuweisung.
s = "{065}" . Weist der Zeichenketten-Variablen s ein A zu.
Weil der DATA-Befehl es auch ermöglicht, eine EEP-Datei für das EEPROM zu generieren wurden die Direktiven $DATA und $EEPROM eingeführt. Lesen Sie die Beschreibungen dieser Direktiven um mehr über den DATA-Befehl zu lernen.
Die DATA-Zeilen dürfen nicht durch den normalen Programmablauf zugegriffen werden weil die DATA-Zeilen zu den Byte-Represantionen der Daten umgewandelt werden.
Wenn der Programmlauf in den DATA-Bereich kommt dann ergibt das unvorhersehbare Ergebnisse
Deswegen sollten - wie in QB - die DATA-Zeilen am besten am Ende des Programms plaziert werden oder an einer Stelle wo sie nicht vom Programmablauf erreicht werden.
Dieses ist ein korrektes Beispiel:
Print "Hallo"
Goto jump
DATA "test"
Jump:
'Weil wir über den Datenbereich springen gibt es keine Probleme.
Das folgende Beispiel führt zu Problemen:
Dim S As String * 10
Print "Hallo"
Restore lbl
Read S
DATA "test"
Print S
Wenn der END-Befehl benutzt wird dann muss er VOR den DATA-Bereichen geschrieben werden.
Unterschied zu QB
Integer und Word Konstanten müssen mit %-Zeichen enden.
Long Konstanten müssen mit dem &-Zeichen enden.
Single Konstanten müssen mit dem !-Zeichen enden.
Double Konstanten müssen mit dem #-Zeichen enden.
Siehe auch
READ , RESTORE , $DATA , $EEPROM , LOOKUP, LOOKUPSTR , LOOKDOWN
Beispiel
'----------------------------------------------------------------------------------------- 'name : readdata.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : demo : READ,RESTORE 'micro : Mega48 'suited for demo : yes 'commercial addon needed : no '----------------------------------------------------------------------------------------- $regfile = "m48def.dat" ' Mikrocontroller $crystal = 4000000 ' Taktfrequenz $baud = 19200 ' Baudrate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 ' default use 10 for the SW stack $framesize = 40 ' default use 40 for the frame space Dim A As Integer , B1 As Byte , Count As Byte Dim S As String * 15 Dim L As Long Restore Dta1 'Zeiger auf gespeicherte Daten setzen For Count = 1 To 3 'Für jedes Datenelement Read B1 : Print Count ; " " ; B1 Next Restore Dta2 'Zeiger aud Datentabelle setzen For Count = 1 To 2 'Für jedes Datenelement Read A : Print Count ; " " ; A Next Restore Dta3 Read S : Print S Read S : Print S Restore Dta4 Read L : Print L 'long type 'demonstration of readlabel Dim W As Iram Word At 8 Overlay ' location is used by restore pointer 'note that W does not use any RAM it is an overlayed pointer to the data pointer W = Loadlabel(dta1) ' loadlabel expects the labelname Read B1 Print B1 End Dta1: Data &B10 , &HFF , 10 Dta2: Data 1000% , -1% Dta3: Data "Hello" , "World" 'Zu beachten: Integer-Werte (>255 or <0) müssen mit einem %-Zeichen enden. 'Auch zu beachten: Der Datentyp muss dem Datentyp der Variablen im READ-Befehl entsprechen. Dta4: Data 123456789& 'Zu beachten: LONG-Werte müssen mit einem &-Zeichen enden. 'Auch zu beachten: Der Datentyp muss dem Datentyp der Variablen im READ-Befehl entsprechen.
Languages | English • Deutsch |
---|