Оператор Input#

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

Синтаксис:

Диаграма на оператора Input


Input #fileNum {,|;} var1 [, var2 [, ...]]

Параметри:

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

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

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

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

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

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

Пример:


Sub ExampleWorkWithAFile
    Dim iCount As Integer, sFileName As String
    Dim sName As String, sValue As Integer
    sFileName = "C:\Users\ThisUser\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
    ' Четене на файл с данни чрез Input
    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

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