FoxPro/Visual FoxPro - Extraer informacion de un archivo txt

 
Vista:
sin imagen de perfil

Extraer informacion de un archivo txt

Publicado por Jose Alfredo (23 intervenciones) el 17/02/2002 19:54:42
Hola..
Si alguien sabe como hacer para extraer la informacion de un archivo de texto a una tabla y me podria ayudar se lo agradeceria.
Lo que necesito es lo siguiente:
Tengo un archivo txt con X cantidad de lines...
Todas las lines tienen la misma longitud ejemplo
0001XXXXXAAAAABBBBB
0002XXXXXAAAAABBBBB
0003XXXXXAAAAABBBBB
Lo que deseo es una rutina para sacar esa informacion y hacerla registro en una tabla.
ejemplo
00001 XXXXX AAAAA BBBBB
00002 XXXXX AAAAA BBBBB pero esto ya como registros.
He logrado sacar la informacion del archivo de texto pero no se como decirle al programa que siga a la siguiente linea, como un Do while !eof() en el caso de que fuera una tabla...

Si alquien me puede ayudar se lo agradecere.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Extraer informacion de un archivo txt

Publicado por Jossept Gascon (1 intervención) el 17/02/2002 22:02:10
Hola amigo....

Mira en clipper se toma la informacion de un txt con la funcion
FREAD(), la cual devuelve el valor de la primera linea, y la ejecuto de nuevo lee la segunda y asi consecutivamente, recuerda que debes abrir el archivo plano primero con FOPEN(), si no mas recuerdo, en visual foxpro tambien existen estas funciones, solo tienes que programarlas con un ciclo (do while) para leer todo el archivo....

mas o menos esto....

fopen(...)
a = fread(...)
do while a=\"\"
replace campo with a
a = fread(...)
enddo
fclose(...)

estudia las sintaxis de las funciones para hacer la rutina...

espero haberte ayudado....

hasta la proxima...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Extraer informacion de un archivo txt

Publicado por GABO (4 intervenciones) el 18/02/2002 19:45:34
1 Crea una tabla con un solo campo, la longitud debe ser suficiente al tamaño de las lineas de texto, ejemplo: En las lineas que escribiste son 19, puedes hacerlo de unos 25, por si acaso llega a haber una de mas longitud.
2 selecciona la tabla y usa el comando. append from "nom_arch.txt" sdf,
de esta forma todo el archivo de texto se anexa a la tabla, tal y como este el archivo de texto, ahora lo vas a tener en un solo campo de una tabla, la cantidad de registros va a depender de la cantidad de lineas del archivo de texto.
Si necesitas de separar la informacion de cada registro para manipularla, se usa el substr(), espero te sirva, de lo contrario tengo un ejemplo mas amplio, mandame un correo si lo necesitas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Vean lo que he hecho!

Publicado por Jose Alfredo Garcia (23 intervenciones) el 18/02/2002 20:01:19
Esto es lo que he hecho
Esta rutina me funciona bien cuando tengo en el archivo que todas las lineas tienen el mismo largo. Pero yo quiero extraer los registros cuando una linea sea mas pequena y otra mas grande, yo quiero saber cuando es el fin de la linea. y pasar a la otra.

Saludos

****** RUTINA ********
xfile="prueba.txt"
x=0
TAMA=43 && SUPONGAMOS QUE LAs LINEAS MIDEN 43 bytes
archivox=1
do while .t.
stor fopen(xfile) to archivox
stor fseek(archivox, x) to inicio
stor fread(archivox,TAMA) to contenid
a=right(contenido,43)
zzz= ALLT(left(a,(len(a)-2)))
= fclose(archivox)
if empty(zzz)=.t.
exit
endif
wait wind zzz && muestra el contenido de la linea
x=x+43
enddo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOLO APPEND FROm a.txt type ascci ..

Publicado por ElSuperRo (98 intervenciones) el 21/02/2002 04:04:21
solo revisa el appenf from file a*.txt type ASCII (delimited,etc.)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar