READ DATA RESTORE
DATA statements kunnen in Liberty BASIC programma's worden ingebed om toegang
tot strings en numerieke gegevens gemakkelijker te maken.
DATA wordt door het programma ingelezen met het READ statement,
die de DATA items één voor één inleest. Het RESTORE statement zorgt ervoor
dat de volgende READ statement begint te lezen bij het eerst vermelde DATA statement,
of bij het eerste DATA statement na een gespecificeerd aftaketiket als men
die in het RESTORE statement heeft inbegrepen.
Deze methodes kunnen worden gebruikt om gegevens in arrays te zetten,
waarbij dit dus een gemakkelijke methode is om arrays te vullen.
DATA
Het DATA statement is een geschikte manier om gegevens in programma's op te nemen.
De DATA (gegevens) kunnen meer dan eens worden gelezen (zo vaak als u wilt) door
gebruik te maken van het READ statement. Een DATA statement voert in werkelijkheid
geen actie uit wanneer het in de code van het programma wordt ontmoet.
DATA en READ horen bij elkaar.
data "one", 1, "two", 2, "three", 3, "end", 0
Één of meerdere DATA statements vormen de gehele reeks data elementen.
Bijvoorbeeld, kunnen de gegevens die in het voorbeeld hierboven staan ook in meer
dan één DATA statement worden vermeld:
'hier is onze data in twee in plaats van één regel
data "one", 1, "two", 2
data "three", 3, "end", 0
DATA is lokaal voor een subroutine of de functie waarin het gedefinieerd staat.
READ
Dit haalt de volgende string en/of de numerieke waarden uit de DATA statement in een programma.
Het READ statement zal genoeg items ophalen om de variabele namen te vullen die
de programmeur specificeert. De opgehaalde waarden zullen worden omgezet om zich
aan de vermelde variabelen aan te passen (string of numeriek).
Voorbeeld:
' lees de getallen en hun omschrijvingen
while desc$ <> "end"
read desc$, value
print desc$; " is the name for "; value
wend
'hier is onze data
data "one hundred", 100, "two", 2, "three", 3, "end", 0
end
U kunt ook numerieke items inlezen:
'read the numbers and their descriptions
while desc$ <> "end"
read desc$, value$
print desc$; " is the name for "; value$; ", length="; len(value$)
wend
'here is our data
data "one hundred", 100, "two", 2, "three", 3, "end", 0
end
RESTORE
RESTORE zal het lezen van het DATA statement terugstellen zodat de volgende READ
informatie van de eerste DATA statement in het programma zal ontvangen
(of van het eerste DATA statement in een functie of een subprogramma,
als dat de plaats is waar RESTORE wordt uitgevoerd).
Voorbeeld:
'toon me al mijn data in hoofdletters
while string$ <> "end"
read string$
print upper$(string$)
wend
string$ = "" 'clear this for next while/wend loop
'stel nu het lezen van data terug naar het begin
restore
'show me nu al mijn data in klein letters
while string$ <> "end"
read string$
print lower$(string$)
wend
data "The", "Quick", "Brown", "Fox", "Jumped"
data "Over", "The", "Lazy", "Dog", "end"
end
RESTORE [branchLabel]
Als optie kunt u ervoor kiezen een label te gebruiken:
'show me my data in all uppercase
while string$ <> "end"
read string$
print upper$(string$)
wend
string$ = "" 'clear this for next while/wend loop
'now reset the data reading to the second part
restore [partTwo]
'show me my data in all lowercase
while string$ <> "end"
read string$
print lower$(string$)
wend
data "Sally", "Sells", "Sea", "Shells", "By", "The", "Sea", "Shore"
[partTwo]
data "Let's", "Do", "Only", "This", "A", "Second", "Time", "end"
end
Inlezen van DATA naar Arrays
DATA wordt ingelezen (READ) naar variabelen. Het kan niet direct worden geplaatst (READ)
in een array. Om toch een array te vullen met DATA items, moet men eerst het item
inlezen (READ) naar een variabele, en die variabele daarna gebruiken
om een index (element) van een array te vullen.
'fout
read numericArray(1)
'correct:
read num1
numericArray(1) = num1
Error Handling
Elke poging om meer DATA items te lezen dan in de DATA lijst aanwezig zijn
laat het programma met een fout stoppen.
Merk op dat in de voorbeelden hierboven, een "end" markering in de DATA werd geplaatst
en wanneer die wordt bereikt, het programma op houdt met het verder lezen van DATA.
Dit is een uitstekende manier om fouten te verhinderen te laten ontstaan.
Als geen eindmarkering of een vlag van één of andere soort wordt gebruikt,
zorg er dan voor dat er andere controles zijn die voorkomen
dat het READ statement meer data items probeert te lezen dan er in de DATA statements staan.
See also: READ, RESTORE, READ and DATA