Collabora Office 24.04:n ohje
Luetaan tietoja avoimesta peräkkäistiedostosta.
Input #fileNum {,|;} var1 [, var2 [, ...]]
fileNum: Number of the file that contains the data that you want to read. The file must be opened with the Open statement using the key word INPUT.
var: A numeric or string variable that you assign the values read from the opened file to.
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.
Sub ExampleWorkWithAFile
Dim iCount As Integer, sFileName As String
Dim sName As String, sValue As Integer
sFileName = "C:\Users\ThisUser\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
'Lue tiedosto Input-komennolla
iCount = Freefile
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