Instrucción Input#

Lee datos de un archivo secuencial abierto.

Sintaxis:

Input #NúmeroArchivo As Integer; var1[, var2[, var3[,...]]]

Parámetros:

NúmeroArchivo: Número del archivo que contenga los datos que se desee leer. El archivo debe estar abierto con la instrucción Open mediante la palabra clave INPUT.

var: Una variable numérica o de cadena que a la que se asignan los valores leidos del archivo abierto.

La instrucción Input# lee valores numéricos o cadenas de un archivo abierto y asigna los datos a una o más variables. Una variable numérica se lee hasta el primer retorno de carro (Asc=13), avance de línea (Asc=10), espacio o coma. Las variables de cadena se leen hasta el primer retorno de carro (Asc=13), avance de línea (Asc=10) o coma.

Los datos y los tipos de datos del archivo abierto deben aparecer en el mismo orden que las variables que se pasan en el parámetro "var". Si asigna valores no numéricos a una variable numérica, se asigna a "var" un valor igual a "0".

Los registros separados por comas no pueden asignarse a una variable de cadena. Las comillas (") del archivo también se descartan. Si se desea leer estos caracteres del archivo, use la instrucción Line Input# para leer archivos de texto puros (archivos que contienen sólo caracteres imprimibles) línea a línea.

Si se llega al final del archivo mientras se lee un elemento de datos, se produce un error y el proceso se interrumpe.

Ejemplo:

Sub ExampleWorkWithAFile

Dim iCount As Integer

Dim sName As String

Dim sValue As Integer

Dim sFileName As String

 

sFileName = "c:\data.txt"

iCount = Freefile

 

' Escribir datos (que leeremos posteriormente con Input) en el archivo

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

' Leer archivo de datos mediante 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