Ayuda con archivo

Hola nuevamente, ¿tengo una tabla dbf y necesito exportarla a un archivo de texto... Como lo hago?
Y lo otro es que necesito que los datos en el archivo de texto no queden con espacios ni separados por tabulación o puntos y comas, los necesito todos juntos... ¿es posible esto?, ¿Cómo lo puedo hacer...?
Espero.. Y de antemano muchas gracias...
2

2 respuestas

Respuesta
1
Ok, usa el siguiente código:
Local numcampos, nomcampo, i, cfila
nFile = Fcreate("c:\miarchivo.txt")
USE c:\sistplanilla\datos\mitabla.dbf SHARED
numcampos=afield(mitabla)
go top
do while not eof()
cfila=""
FOR i=1 TO numcampos
nomcampo=alltrim(field(i))
clear
cfila = cfila + alltrim(iif(type("mitabla.&nomcampo")='L',iif(mitabla.&nomcampo=.T.,"V","F"),iif(type("mitabla.&nomcampo")='D',dtoc(mitabla.&nomcampo),iif(type("mitabla.&nomcampo")='N',str(mitabla.&nomcampo),mitabla.&nomcampo))))
Endfor
Skip
Fputs(nFile, cFila)
Enddo
Fclose(nFile)
Puede tardar mucho si tienes demasiados registros. Pruébalo y me avisas.
Prueba con esto:
Use mitabla
copy to c:\miarchivo.txt sdf
Me avisas que tal resulto.
Gracias por tu ayuda pero no es eso lo que necesito... ya que según tu código, me exporta los datos a un txt, pero necesito que los exporte sin espacio entre las columnas, es decir, que al abrir el txt me aparezca la info toda junta, sin ningún tipo de separador o tabulación...
¿Me entiendes?
Espero que si y puedas ayudarme...
Espero...:)
Si todos los tipo de datos son texto mejor aun, la linea quedaría así:
cfila = cfila + alltrim(mitabla.&nomcampo)
El código puedes ponerlo en un prg. Pruébalo.
Si, te sirve el mismo código, lo único que cambia es la linea de cfila.
Respuesta
1
Te ebvie el ejemplo espero colme tus expectativas
Atentamente. Fitocava
Cualquier cosa me escribes
Ok ok yo prepare un ejemplo sobre eso lo busco y te lo envío
Atentamente. Fitocava
Espero que en el ejemplo anterior me haya explicado bien cual quier duda nodudes en escribir
Gracias... espero entonces...
Recuerda mi mail es [email protected]
chau.
Si no te preocupes si se una pregunta que me intriga
Tu no hastenido este correo
[email protected]
Solo es una curiosidad no te vallas amolestar
Atentamente. Fitocava
Estoy buscando el ejemplo
Encontré el ejemplo pero me pides que no haya separaciones por nada ni con nada
Por ejemplo
Tabla1
Código nombre apellido
00001 arturo vasquez
00002 omar vasquez
00003 cesar vasquez
Tu lo quieres así:
00001arturovasquez
00002omarvasquez
00003cesarvasquez
en un txt
Contestame para ver la forma de ayudarete
Atentamente. Fitocava
Nota has usado xml o xmls
siiiiiiiiiiiii, es justamente eso lo que necesito... que en el txt aparezca todo juntito...
NBo nunca he trabajado con xml... pero lo que necesito es el txt...
COMO ESTAS bueno
Conrespecto atu pregunta
Si pudieras enviarme solo la tabla con unos cuantos registros para poder trabajar el ejemplo en base a ella
Atentamente. Fitocava
Contestame lo más pronto posible espero tu respuesta
Ok
Hola nuevamente... ocurren tres cosas ejecutar el código:
1.- En mi tabla tengo un campo tipo carácter, pero que en realidad corresponde a un hora y necesito que respete ese formato.
2.- En el txt cada registro es separado por una fila en blanco.. como soluciono eso...
3.- En mi tabla el ultimo campo es una gestión, por ejemplo: cliente no vive en esa propiedad, pero en el txt me aparece solo: ¿client... y el resto?
Eso... ojala puedas seguir ayudándome... y gracias nuevamente...
Acabo de enviarte un mail... espero entonces... GRACIAS!
La respuesta por si no llega atu correo
*//Esta es una forma de convertir una tabla a un archivo TXT utilizando funciones de bajo nivel.
*//El separador para los campos esta definido en la variable Separa.
Local lnHandle
lnHandle = Fcreate("c:\Archivo.txt") &&ruta donde quieres que aparesca el archivo txt
cSepara = "-" &&separador si no lo quieres lo desactivas del programa
cCadCamp = "" && variable para capturar los campos de la tabla
Use datos && tabla de datos puedes usar selec xxx
Go Top
Scan
For i = 1 To Fcount()
cCadCamp = cCadCamp + Alltrim(Transform(Eval(Field(i)))) + cSepara &&si no quieres el separador eliminas + cSepara
Endfor
cCadCamp = Left(cCadCamp, Len(cCadCamp)-1) + Chr(13)+Chr(10)
Endscan
=Fputs(lnHandle,cCadCamp)
=Fclose(lnHandle)
Use In datos
&&ok eso estodo amiga lo que no entendi es de la hora te envie varios correos
&& para que me puedas explicar y no recibi respuesta
&& espero te sirva atte. fitocava
Te envie la solucion atu mail
Espero sirva
¿Tu eres de colombia...?
Atentamente. Fitocava
Espero...
Recibiste los mensajes
Hola nuevamente disculpa la demora en responder...
Necesito saber como indicar que un campo es de tipo fecha y que me aparezca tipo 10/08/2006 y lo mismo para los campos tipo hora que aparezca en el txt 10:20:00...
Espero...
Como estas tu
Bueno con respecto a tu pregunta en el ejemplo anterior te sugerí que la tabla o tablas donde tienes la información a convertir en txt
1. Tienes que crear un tabla temporal que es la que va almacenar los datos a convertir a txt los campos de esta tabla temporal tienes que ser todos de tipo carácter sin e sección = que lo del memo
2. para que pases de tu tabla o tablas por ejemplo para un campo fecha
tienes que poner esto en el inicio
set date to dmy
para convertirlo a carácter dtoc(camposfecha)
para tu hora normal solo de campo a campo por que es carácter pero si has utilizados el campo time utiliza esto
en el inico
set hour to 24
Para convertirlo a carácter alltrim(str(campohora))
Bueno eso es todo sin más que desiste me despido esperando que sirva y despeje tus dudadas, cualquier inquietud ya sabes donde encontrarme
una pregunta no tienes correo Hotmail para poder comunicarnos más rapido on line
mi mail hot es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas