Оператор 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