Instrução Input#

Lê dados de um ficheiro sequencial aberto.

Sintaxe:

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

Parâmetros:

NumFicheiro: número do ficheiro que contém os dados que pretende ler. O ficheiro terá de ser aberto através da instrução Open utilizando a palavra-chave INPUT.

var: Uma variável numérica ou de cadeia à qual se atribuem os valores lidos no ficheiro aberto.

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

Dim sName As String

Dim sValue As Integer

Dim sFileName As String

 

sFileName = "c:\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

 

iCount = Freefile

' Ler dados utilizando 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