Compartiendo para dos mundos

Hablando de programación paralela.
Tutoriales en: https://www.youtube.com/user/jambrizgdl
Twitter: @dogoteacher

Buscar este blog

martes, 24 de julio de 2007

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?