INPUT #handle "string expression"; variableName
Description:
Dit commando kent verscheidene mogelijke vormen:
input var
Bij deze vorm wacht een programma op de gebruiker om gegevens in het mainwin programma
in te geven en op de "enter" toets te drukken.
Het zal dan de ingegeven gegevens aan variabele var toewijzen.
input "enter data"; var
Deze vorm zal de string "enter data" tonen en dan stoppen en wachten op de gebruiker
om gegevens in het mainwin programma in te geven en "Enter" te drukken.
Het zal dan de ingegeven gegevens aan var toewijzen.
input #name, var
Deze vorm zal het volgende gegevensonderdeel uit het geopende bestand of het apparaat
dat de handle genaamd #name gebruikt, halen en zal dit gegeven aan var toewijzen.
Als geen apparaat of dossier bestaat dat de genoemde handle #name gebruikt,
dan geeft INPUT een fout.
input #name, var1, var2
Deze vorm zorgt ervoor dat de volgende twee gegevensonderdelen worden opgehaald
en aan var1 en var2 worden toegewezen.
line input #name, var$
Het LINE INPUT statement zal uit een bestand lezen en daarbij alle komma's in
de inputstroom negeren. Het zal het gegevensonderdeel inlezen tot
de eerst volgende enter of tot aan het eind van de file.
Dit is nuttig voor om teksten in te lezen met ingebedde komma's
Gebruik:
'Display a text file
filedialog "Open..." , "*.txt", filename$
open filename$ for input as #text
[loop]
if eof(#text) <> 0 then [quit]
input #text, item$
print item$
goto [loop]
[quit]
close #text
print "Done."
end
Arrays
In eerdere versies van Liberty BASIC, kon INPUT niet worden gebruikt
om inputgegevens direct in arrays te plaatsen.
Die konden alleen in eenvoudige variabelen worden geplaatst.
Sinds Liberty BASIC 3, bestaat die beperking niet meer.
Het is nu mogelijk om Input en Line Input te gebruiken om arrays rechtstreeks te vullen.
Om rechtstreeks in een array in te voeren:
input array$(x)
Het is ook mogelijk om deze methode te gebruiken:
input array$(x), string$, stuff(i)
Question Mark
De meeste versies van Microsoft BASIC laten INPUT automatisch
vlak voor de cursor een vraagteken op het beeldscherm plaatsen,
wanneer de gebruiker om informatie wordt gevraagd:
input "Please enter the upper limit"; limit
produces:
Please enter the upper limit ? |
Liberty BASIC maakt het doen verschijnen van een vraagteken tot een optie.
input "Please enter the upper limit :"; limit
produces:
Please enter the upper limit: |
en:
input limit
produces simply:
? |
In de simpele vorm INPUT limit, wordt het vraagteken automatisch opgenomen,
maar als een prompt wordt gespecificeerd, zoals in het bovengenoemde voorbeeld,
dan wordt slechts de inhoud van de prompt getoond, en verder niets.
Als het noodzakelijk is om input zonder een prompt en zonder een vraagteken te verkrijgen,
dan zal het volgende het gewenste effect geven:
input ""; limit
Bovendien, zal bij de meeste BASIC versies van Microsoft,
als INPUT een numerieke waarde verwacht en een niet-numerieke of stringwaarde is ingegeven,
dan zal de gebruiker met commentaar worden geconfronteerd iets als "Redo from Start",
en wordt verondersteld om opnieuw in te voeren.
Liberty BASIC doet dit niet automatisch, maar zet de invoer op
een nul waarde in de dienovereenkomstige variabele.
De prompt kan als string variabele, of als letterlijke string worden uitgedrukt:
prompt$ = "Please enter the upper limit:"
input prompt$; limit
See also: INPUT$(#h, n), INPUTTO$(#h, c$), Line Input