Lectura y escritura de archivos de texto
Lectura de archivos de texto
Se realiza por medio del objeto TextStream relacionado con un archivo de texto. Para realizar esta labor, ver el documento "principios de archivos de texto" en la página: http://docs.google.com/Doc?id=d5mw2dm_11fk4wsc . En este documento se explica muy brevemente los tipos de archivos manejados en vba, como accesar a un archivo ya existe y como definir uno nuevo.
Al abrir un archivo para lectura con la función OpenTextFile, el objeto TextStream contiene un indicador de la posición actual en el flujo de bytes. Puede ser el inicio del documento, el final o en algún byte intermedio del flujo. Conforme se lee el contenido avanza este indicador de forma automática - para el programador - .
Función ReadLine
La función ReadLine de la clase TextStream devuelve en un String que contiene la siguiente línea de texto por leer del archivo. Pero la devuelve sin el delimitador (es decir sin el retorno de carro o vbCrLf ). Incrementa la posición actual en el flujo de bytes a la posición consecutiva después de la línea que acaba de leer.
Propiedad AtEndOfStream
La propiedad AtEndOfStream devuelve el valor booleano True si la posición actual es el final del flujo y False en caso contrario.
EJEMPLO1
Dim cadena As String
Dim Flujo_texto As Object
Dim num_linea as integer
...
Set Flujo_texto = filesystem.openTextFile("c:tempagenda.txt", 1, 0)
cadena= ""
num_linea= 1
cadena = str(num_linea) & ".- " & Flujo_texto.readLine
Do While Not Flujo_texto.AtEndOfStream
num_linea= num_linea + 1
cadena = cadena & vbCrLf & str(num_linea) & ".- " & Flujo_texto.readLine
Loop
Flujo_texto.Close
El código anterior lee línea por línea el archivo "agenda.txt" y lo coloca en una variable de tipo string llamada cadena. Al final del ciclo se cierra el flujo.
Función WriteLine
El procedimiento WriteLine de la clase TextStream escribe una cadena de caracteres en la posición actual del archivo de texto, agrega al final un retorno de carro ( vbCrLf ) e incrementa esta posición hasta el final de la nueva cadena en el archivo.
EJEMPLO2
Dim i As Integer
Dim Flujo_texto As Object 'TextStream
...
Set Flujo_texto = filesystem.CreateTextFile("c:tempagenda.txt")
For i = 1 To 50
Flujo_texto.WriteLine str(i) & "," & Trim(listado(i))
Next i
Flujo_texto.Close
El código anterior escribe 50 líneas de texto en el flujo de datos y al final lo cierra.
No hay comentarios:
Publicar un comentario
Are you ready?