Conteúdo
Índice 🔎︎

# Instrução Input#

Lê os dados de um arquivo sequencial aberto.

### Sintaxe:

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

### Parâmetros:

fileNum: número do arquivo que contém os dados a serem lidos. O arquivo deve ser aberto com a instrução Open usando-se a palavra-chave INPUT.

var: uma variável numérica ou de cadeia de caracteres à qual você atribui os valores lidos do arquivo aberto.

A instrução Input# lê valores numéricos ou as cadeias de caracteres de um arquivo aberto e atribui os dados a uma ou mais variáveis. Uma variável numérica é lida até o primeiro retorno de carro (Asc=13), alimentação de linha (Asc=10), espaço ou vírgula. Variáveis de cadeias de caracteres são lidas até o primeiro retorno de carro (Asc=13), alimentação de linha (Asc=10) ou vírgula.

Dados e tipos de dados do arquivo aberto devem aparecer na mesma ordem que as variáveis passadas no parâmetro "var". Se você atribuir valores não numéricos a uma variável numérica, "var" receberá um valor de "0".

Registros separados por vírgula não podem ser atribuídos a uma variável de string. Aspas (") no arquivo também são ignoradas. Se desejar ler esses caracteres a partir do arquivo, use a instrução Line Input# para ler arquivos de texto puro (arquivos que contenham somente caracteres imprimíveis) linha por linha.

Se o fim do arquivo for alcançado durante a leitura de 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
        ' Escreve os dados (que leremos mais tarde com Input) para o arquivo
        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
        ' Lê o arquivo de dados usando 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

Tópicos relacionados

Instrução Close

Instrução Open

Instrução Print#

Instrução Write#