Оператор Input#

Чете данни от отворен файл с последователен достъп.

Синтаксис:

Input #FileNumber As Integer; var1[, var2[, var3[,...]]]

Параметри:

FileNumber: номерът на файла, съдържащ данните, които искате да бъдат прочетени. Файлът трябва да е отворен с оператора Open и ключовата дума INPUT.

var: числова или низова променлива, на която се присвояват прочетените от файла стойности.

Операторът Input# чете числови стойности или низове от отворен файл и присвоява данните на една или няколко променливи. Числовите променливи се четат до срещане на знак за връщане на каретката (Asc=13), нов ред (Asc=10), интервал или запетая. Низовите променливи се четат до първия знак за връщане на каретката (Asc=13), нов ред (Asc=10) или запетая.

Данните и типовете им в отворения файл трябва да следват в същия ред като променливите, подадени като параметър „var“. Ако присвоите нечислова стойност на числова променлива, „var“ получава стойност 0.

Записи, разделени със запетая, не могат да бъдат присвоени на низова променлива. Кавичките (") във файла също се пропускат. Ако искате тези знаци да бъдат прочетени от файла, използвайте оператора Line Input#, за да четете ред по ред от чисти текстови файлове (файлове, съдържащи само печатаеми знаци).

Ако по време на четенето на елемент от данните бъде достигнат краят на файла, възниква грешка и процесът се прекратява.

Пример:


Sub ExampleWorkWithAFile
Dim iCount As Integer
Dim sName As String
Dim sValue As Integer
Dim sFileName As String
 
sFileName = "c:\data.txt"
iCount = Freefile
 
' Записваме данни във файл (които после ще прочетем с Input)
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
' Четене на файл с данни чрез Input
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

Моля, подкрепете ни!