Input# Statement
Luetaan tietoja avoimesta peräkkäistiedostosta.
Syntaksi:
Input #tiedostonro1 As Integer; muuttuja_1[,muuttuja_2[, muuttuja_3[,...]]]
Parametrit:
Tiedostonro1: sen tiedoston numero, josta tietoa luetaan. Tiedosto pitää olla avattu Open-lauseella avainsanaa INPUT käyttäen.
Muuttuja_n: numeerinen tai merkkijonomuuttuja, johon tiedostosta luettavat arvot sijoitetaan.
Input#-lauseella luetaan numeerisia arvoja tai merkkijonoja avoimesta tiedostosta ja tieto sijoitetaan yhteen tai useampaan muuttujaan. Numeerisia arvoja luetaan ensimmäiseen telanpalautukseen (CR, Asc=13), rivin siirtoon (LF, Asc=10), välilyöntiin tai pilkkuun asti. Merkkijonomuuttujia luetaan ensimmäiseen telanpalautukseen (CR, Asc=13), rivin siirtoon (LF, Asc=10) tai pilkkuun asti.
Avatun tiedoston tietojen ja tietotyyppien pitää vastata järjestykseltään muuttujia, jotka välitetään "muuttuja_n"-parametrillä. Jos ei-numeerinen arvo sijoitetaan numeeriseen muuttujaan, "muuttuja_n" saa arvon "0".
Pilkuilla erottuja tietueita ei voi sijoittaa merkkijonomuuttujaan. Myös tiedostossa esiintyvät lainausmerkit (") hylätään. Jos nämä merkit halutaan lukea tiedostosta, käytetään Line Input# -lausetta puhtaiden tekstitiedostojen lukemiseen (tiedostoissa on vain tulostuvia merkkejä) rivi riviltä.
Jos tiedoston loppu saavutetaan luettaessa tietoelementtiä, tapahtuu virhe ja prosessi keskeytetään.
Esimerkki:
Sub ExampleWorkWithAFile
Dim iCount As Integer
Dim sName As String
Dim sValue As Integer
Dim sFileName As String
sFileName = "c:\data.txt"
iCount = Freefile
'Kirjoita tiedot (jotka luetaan myöhemmin Input-komennolla) tiedostoon
Open sFileName For Output As iCount
sName = "Hamburg"
sValue = 200
Write #iCount, sName, sValue
sName = "New York"
sValue = 300
Write #iCount, sName, sValue
sName = "Miami"
sValue = 459
Write #iCount, sName, sValue
Close #iCount
iCount = Freefile
'Lue tiedosto Input-komennolla
Open sFileName For Input As iCount
Input #iCount; sName, sValue
MsgBox sName & " " & sValue
Input #iCount; sName, sValue
MsgBox sName & " " & sValue
Input #iCount; sName, sValue
MsgBox sName & " " & sValue
Close #iCount
End Sub