Unidad 38. Archivos en VB (II)





38.5. Leer.

La lectura no es más complicada, claro, partiendo del supuesto de lo que se puede grabar, no puede ser mucho más compleja.

 

  Module Ejemplo

  Sub main()

  Dim Canal As Int16 = FreeFile()

  Dim Nombre As String = "Prueba.Txt"

  Console.WriteLine()

  Console.WriteLine("Probamos a leer un archivo secuencial ")

  FileOpen(Canal, Nombre, OpenMode.Input)

  Do While Not EOF(Canal)

  Input(Canal, Valor)  

  Console.WriteLine("Leído {0} ", Valor)

  Loop

  ' Cierre del Archivo

  FileClose(Canal)

  End Sub

End Module

 

  Dim Canal As Int16 = FreeFile()

  Dim Nombre As String = "Prueba.Txt"

 

Utilizamos las mismas instrucciones que antes, pero para la lectura abrimos el archivo en modo lectura, entrada.

 

  FileOpen(Canal, Nombre, OpenMode.Input)

Solo nos queda establecer una estructura repetitiva

 

  Console.WriteLine("Probamos a leer un archivo secuencial ")

  Do While Not EOF(Canal)

  Input(Canal, Valor)  

  Console.WriteLine("Leído {0} ", Valor)

  Loop

 

Se ejecuta el While mientras haya datos en el archivo.

Para que todo funcione correctamente, a las clases importadas anteriormente hay que sumar ahora

 

Además para que todo lo visto, tanto en lectura como en escritura, funcione adecuadamente conviene establecer una captura de errores, por lo que todo lo expuesto debería ir entre

 

  try

‘ todo el ejemplo visto anteriormente

  catch Ex as Io.Ioexception

  Console.WriteLine("Error en acceso al archivo")

  End try

 

Como se puede apreciar al inicio del ejemplo.

38.6. Cerrar.

Cerrar el archivo solo precisa de la utilización del método close.

 

FileClose(Canal)

38.7. Matices.

Mientras la instrucción de grabar

 

  WriteLine(Canal, Valor) ‘ con marca fin de registro

 

Permite que en la misma línea de código se graben varios campos

 

  WriteLine(Canal, Codigo, Denominación, Cantidad) 

 

Su equivalente en lectura no lo permite ya que solo admite un campo en cada instrucción, por lo tanto la lectura para 

 

WriteLine(Canal, Codigo, Denominación, Cantidad) 

 

sería

 

  Input(Canal, Codigo)  

  Input(Canal, Denominacion)

  Input(Canal, Cantidad)

 

Una línea para cada campo.

 

•Ejercicios propuestos de la Unidad
Octubre-2010
Pág. 38.2

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies