Input# utasítás
Egy megnyitott szekvenciális fájlból beolvassa az adatot.
Szintaxis:
Input #FileNumber As Integer; változó1[, változó2[, változó3[,...]]]
Paraméterek:
Fájlszám: A beolvasni kívánt adatot tartalmazó fájl száma. A fájlt az Open utasítással kell megnyitni, az INPUT kulcsszó felhasználásával.
változó: Olyan numerikus vagy string (karakterlánc) változó, amelyhez értéket a megnyitott fájlból rendel.
Az Input# utasítás numerikus értékeket vagy karakterláncot olvas egy megnyitott fájlból, és hozzárendeli az adatokat egy vagy több változóhoz. A numerikus változót az első bekezdésvégjelig (Asc=13), soremelésig (Asc=10), szóközig vagy vesszőig olvassa a rendszer. A string (karakterlánc) változót az első bekezdésvégjelig (Asc=13), soremelésig (Asc=10) vagy vesszőig olvassa a rendszer.
A megnyitott fájl adatainak és adattípusainak ugyanabban a sorrendben kell megjelenniük, mint ahogy a „változó” paraméterben átadásra kerülnek. Ha nem numerikus értéket rendel egy numerikus változóhoz, akkor a „változó” elemhez a „0” érték lesz hozzárendelve.
Vesszővel elválasztott rekordok nem rendelhetők hozzá egy karakterlánc változóhoz. A fájlban lévő idézőjelek (") is figyelmen kívül maradnak. Ha ezeket a karaktereket be akarja olvasni a fájlból, akkor a Line Input# utasítással sorról sorra beolvashatja a szövegfájlt (csak nyomtatható karaktereket tartalmazó fájlt).
Ha egy adatelem olvasása közben éri el a fájl végét, akkor hiba történik, és a folyamat leáll.
Példa:
Sub ExampleWorkWithAFile
Dim iCount As Integer
Dim sName As String
Dim sValue As Integer
Dim sFileName As String
sFileName = "c:\data.txt"
iCount = Freefile
' Adatok írása (későbbi beolvasáshoz az Input használatával) fájlba
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
' Adatfájl olvasása az Input használatával
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