Manejo de archivos planos

03/07/2003 - 16:48 por Adrián Torres | Informe spam
Buenos días compañeros del foro, mi consulta es la siguiente : Hasta ahora
he utilizado la siguiente rutina para manipular archivos planos,


Dim fs04
Dim f04
Dim ts04

Set fs04 = CreateObject("Scripting.FileSystemObject")

If Trim(Dir("c:\" & Flota)) = "" Then
Set f04 = fs04.CreateTextFile("c:\" & Flota, True)
Set f04 = fs04.GetFile("c:\" & Flota)
Set ts04 = f04.OpenAsTextStream(8, -2)
ts04.writeline "comienzo"
ts04.writeline Trim(Flota) & ";" & Trim(Placa) & ";" &
Trim(IdVehiculo) & ";" _
& Trim(UltimaFechaX) & ";" & Trim(Hora) & ";" & Trim(Latitud) & ";"
_
& Trim(Longitud) & ";" & Trim(Velocidad) & ";" _
& Trim(AUbicacion) & ";" & Trim(Direccion) & ";" & Trim(Altitud)
ts04.Close
Set f04 = Nothing
Set fs04 = Nothing
Set ts04 = Nothing
Else
Set f04 = fs04.GetFile("c:\" & Flota)
Set ts04 = f04.OpenAsTextStream(8, -2)
ts04.writeline Trim(Flota) & ";" & Trim(Placa) & ";" &
Trim(IdVehiculo) & ";" _
& Trim(UltimaFechaX) & ";" & Trim(Hora) & ";" & Trim(Latitud) & ";"
_
& Trim(Longitud) & ";" & Trim(Velocidad) & ";" _
& Trim(AUbicacion) & ";" & Trim(Direccion) & ";" & Trim(Altitud)
ts04.Close
Set f04 = Nothing
Set fs04 = Nothing
Set ts04 = Nothing
End If


crearlos, eliminarlos, leer linea por linea, agregar linea a linea pero me
parece que no es lo más apropiado y ultimamente me esta dando un error de
acceso denegado cuando intento borralo (error 70) al cual le doy ok. y
continua sin ningun problema.

La pregunta es existe otra manera con la que pueda realizar estas mismas
operaciones pero con otras intrucciones. Muchas de antemano.
 

Leer las respuestas

#1 Leonardo Azpurua
03/07/2003 - 21:10 | Informe spam
Adrian:

Deberías revisar la ayuda para las instrucciones Open, Print #, Input # si
quieres tener información detallada.

En principio, para escribir hacia un archivo, debes

1.- Obtener un número de handle libre:
n = OpenFile

2.- Abrirlo
Open "ARCHIVO.TXT" For Output as #n
Esta instrucción crea un nuevo archivo, si es que ya existía un archivo
con ese nombre.
Si quieres agregar información a un archivo preexistente, utilizarás
Open "ARCHIVO.TXT" For Append as #n

3.- Escribir
Write #n, Var1, Var2, ..., VarN
Este método escribe cada variable según lo que en los manuales de DBII
se llamaba SDF (System Data Format), es decir, los campos alfanuméricos
encerrados entre comillas, el punto utilizado como separador de decimales,
los campos separados por comas y cada linea terminada por CR+LF.
Alternativamente podrías escribir
Print #1, ...
En este caso, los datos pasan al archivo con el mismo formato que si
hicieras debug.Print, o que si usaras un print en el viejo Basic.

4.- Cerrarlo.
Close #n
Si escribes Close, sin argumentos, todos los archivos abiertos se
cerraran.

Para leer

1.- Obtener un número de handle libre, igual que arriba

2.- Abrir el archivo
Open "ARCHIVO.TXT" for Input as #n

3.- Leer los registros
Do While Not EOF(n)
Input #n, Var1, Var2, ..., VarN
... proceso de cada registro
Loop

Alternativamente puedes leer líneas de texto completas, utilizando
LineInput #1, strLinea
Mediante este procedimiento puedes leer el archivo línea a línea.

Los "archivos planos" tambien pueden ser utilizados para almacenar datos
binarios y como dispositivos de acceso directo (random access) mediante las
instrucciones Get, Put y Read, y los modificadores de apertura "for Random"
y "for Binary", pero eso no lo uso desde los MUY viejos tiempos de GWBASIC,
de manera que no puedo decirte nada sobre ellos.

Salud!

Leonardo
Microsoft MVP
Caracas - Venezuela

Preguntas similares