Instrukcja Input#
Odczytuje dane z otwartego pliku sekwencyjnego.
Składnia:
Input #FileNumber As Integer; zmienna1[, zmienna2[, zmienna3[,...]]]
Parametry:
Numer_pliku: Numer pliku zawierającego dane, które należy odczytać. Plik musi być otwarty za pomocą instrukcji Open ze słowem kluczowym INPUT.
Zmienna: Zmienna numeryczna lub w postaci ciągu, do której będą przypisane wartości odczytane z pliku.
Instrukcja Input# odczytuje wartości numeryczne lub ciągi z otwartego pliku i przypisuje dane do jednej lub kilku zmiennych. Zmienna numeryczna jest odczytywana aż do wystąpienia pierwszego znaku powrotu karetki (ASCII=13), znaku nowego wiersza (ASCII=10), spacji lub przecinka. Zmienne w postaci ciągów są odczytywane aż do wystąpienia pierwszego znaku powrotu karetki (ASCII=13), znaku nowego wiersza (ASCII=10) lub przecinka.
Dane i typy danych w otwartym pliku muszą występować w takiej samej kolejności, jak zmienne przekazane w parametrze "zmienna". W przypadku przypisania wartości nienumerycznych do zmiennej numerycznej, "zmienna" przyjmuje wartość "0".
Rekordy oddzielone przecinkami nie mogą być przypisane do zmiennej w postaci ciągu. Cudzysłowy (") w pliku są także odrzucane. Aby odczytywać takie znaki z pliku, należy użyć instrukcji Line Input#, która odczytuje kolejne linie plików typowo tekstowych (zawierających wyłącznie znaki drukowalne).
Jeśli podczas odczytywania elementu danych zostanie osiągnięty koniec pliku, występuje błąd i proces jest przerywany.
Przykład:
Sub ExampleWorkWithAFile
Dim iCount As Integer
Dim sName As String
Dim sValue As Integer
Dim sFileName As String
sFileName = "c:\data.txt"
iCount = Freefile
' Zapisz dane (które będą wczytane później na wejściu) do pliku
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
' Wczytaj plik danych z wejścia
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