Input# Statement

Lê dados de um ficheiro sequencial aberto.

Sintaxe:

Input Statement diagram


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

Parâmetros:

fileNum: Number of the file that contains the data that you want to read. The file must be opened with the Open statement using the key word INPUT.

var: A numeric or string variable that you assign the values read from the opened file to.

A instrução Input# lê valores numéricos ou cadeias de um ficheiro aberto e atribui os dados a uma ou mais variáveis. Uma variável numérica lê-se até ao primeiro retorno de linha (Asc=13), mudança de linha (Asc=10), espaço ou vírgula. As variáveis de cadeia lêem-se até ao primeiro retorno de linha (Asc=13), mudança de linha (Asc=10) ou vírgula.

Os dados e os tipos de dados no ficheiro aberto têm de aparecer na mesma ordem das variáveis transferidas no parâmetro "var". Se atribuir valores não numéricos a uma variável numérica, "var" recebe um valor de "0".

Os registos separados por vírgulas não podem ser atribuídos a uma variável de cadeia. As aspas (") no ficheiro também são ignoradas. Se quiser ler estes caracteres no ficheiro, utilize a instrução Line Input# para ler ficheiros de texto puro (ficheiros que só contêm caracteres imprimíveis) linha a linha.

Se atingir o fim do ficheiro quando estiver a ler um elemento de dados, ocorrerá um erro e o processo será cancelado.

Exemplo:


Sub ExampleWorkWithAFile
    Dim iCount As Integer, sFileName As String
    Dim sName As String, sValue As Integer
    sFileName = "C:\Users\ThisUser\data.txt"
    iCount = Freefile
    ' Escrever dados (que iremos utilizar mais tarde para Input ) no ficheiro
    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
    ' Ler dados utilizando 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

Necessitamos da sua ajuda!