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