FoxPro/Visual FoxPro - armar solo un archivo txt

 
Vista:

armar solo un archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 00:27:00
holaa que tal??les cuento lo que quiero hacer,despues de crear varios cursores de distintas tablas,quiero lograr que me quede todas la tablas o cursor en un archivo txt o sea algo asi

encabezado
nombre de tabla 1 <-puede ser cualquier nombre>
pepe;12;F
jose;5;m
nombre de tabla 2
1234;tornillos
5456;tuercas
nombre tabla 3
;;;
;;;
etc.
no se si conviene pasar cada cursor o tabla a un archivo txt,y despues ir agregando esos archivos a uno solo txt,el tema que no se como hacerlo,lo unico que logre hacer es pasar los cursores a txt,pero como hago para hacer un unico archivo???
use este codigo:

select cursor1
COPY TO cursor1.txt DELIMITED WITH "" with CHARACTER ;;
select cursor2
COPY TO cursor2.txt DELIMITED WITH "" with CHARACTER ;;
me faltaria manejar el tema para hacer un solo txt y la verdad no tengo idea.
ojala que alguien me pueda ayudar,muchas gracias, 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:armar solo un archivo txt

Publicado por Plinio (7841 intervenciones) el 04/12/2007 00:35:19
Lo mejor es tenerlo todo en un solo cursor y asi con un solo COPY TO enviarlo a un txt
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:armar solo un archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 00:45:55
hola que tal,el tema que eso lo pense pero no puedo armar un solo cursor porque son datos de diferentes tablas,va al menos no lo se hacer si es que se puede,y despues el otro tema es que si o si tengo que poner el titulo antes de cada tabla en el txt,gracias,te agradeceria mucho si me podes guiar un poco,muchas gracias,saludoss!
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:armar solo un archivo txt

Publicado por Ernesto Hernandez (4623 intervenciones) el 04/12/2007 01:46:03
pero no puedo armar un solo cursor porque son datos de diferentes tablas

C- SELEC * FROM mItABLA1,Mitabla2,mitabla3 INTO CURSOR MiCursor
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:archivo txt

Publicado por Ernesto Hernandez (4623 intervenciones) el 04/12/2007 01:50:47
y con esta pasas al archivo TXT

C- COPY TO MiArchivo.TXT DELIM WITH BLANK TYPE
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:archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 03:16:18
hola gracias por tu respuesta,el problema que tengo que en realidad no son de las tablas que estoy trabajando sino de cursores y despues lo tendria que pasar aun solo cursor,pero no seria la solucion desde un solo cursor pasarlo a txt porque no me queda la estructura como la nesecito,el objetivo de todo es llegar a una estructura asi:

encabezado
nombre de cursor 1 <-puede ser cualquier nombre>
pepe;12;F
jose;5;m
nombre de cursor 2
1234;tornillos
5456;tuercas
nombre cursor 3
;;;
;;;
etc.
o sea tengo que poner los titulos si o si y un cursor de bajo del otro no puedo hacerlo de otra forma el archivo txt.asi es como me tiene que quedar porque me lo tiene que aceptar una emulacion de otro programa que no fue echo por mi.
y la verdad estoy trabado y lo veo cada vez imposible lograr esa estructura,si me podes dar una idea te lo agradeceria mucho.gracias saludoss!
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:archivo txt

Publicado por Plinio (7841 intervenciones) el 04/12/2007 03:28:27
Puedes unirlos todos usando un SELECT con la clausula UNION

SELECT campo1, campo2, campo3 FROM cursor1 UNION;
SELECT xcampo1 AS campo1,ycampo2 AS campo2, campo3 UNION ...etc

Fijate que uso la clausula AS para que los campos de los otros cursores sean identicos a l primero.
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:archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 04:44:40
hola gracias!,estoy probando lo que me dijiste y me salta un error ,te cuento lo que hice a ver que estoy haciendo mal.otras de mis dudas es que pasa si no tengo la misma cantidad de campos ??y despues como puedo poner el encabezado antes que empiece cada nuevo cursor antes de mandarlo todo al txt?desde ya muchas gracias!!

select cod_cli,nombre from tabla1 into cursor1
select cod_re,fecha from tabla2 into cursor2

despues
select cod_cli,nombre FROM cursor1 UNION SELECT cod_re as cod_cli,fecha as nombre FROM cursor2 INTO CURSOR cursor3

me sale el siguiente error:'cursor1' debe crearse mediante select...into table.
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:archivo txt

Publicado por Plinio (7841 intervenciones) el 04/12/2007 11:57:23
Pues parece ser un error de VFPs anterior al 8. Haremos algo.CREA UN CURSOR y vacia todos los campos ahi.
Ejemplo:
CREATE CURSOR definitivo (cod_cliente c(10), nombre C(40), Fecha D)

&&Vamos a vaciar el primero
SELECT cursor1
GO TOP
DO WHILE !EOF()
INSERT INTO definitivo (cod_cliente,nombre,fecha);
VALUES (cursor1.cod_cli,cursor1.nombre, cursor1.fecha)

SELECT cursor1
skip
ENDDO

&&Vamos a vaciar el segundo

SELECT cursor2
GO TOP
DO WHILE !EOF()
INSERT INTO definitivo (cod_cliente,nombre,fecha);
VALUES (cursor2.cod_res,cursor2.nombre, {}) &&Este no tiene fecha, la puse en blanco

SELECT cursor2
skip
ENDDO

*Etc, etc

***Ahora imprimes el codigo del cursor definitivo
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:archivo txt

Publicado por Hector R. De los Santos (270 intervenciones) el 04/12/2007 16:12:29
Bueno, yo he tenido que hacer eso lo que utilizo es @SAY y me queda bien.
Salvo que no he tenido que imprimir los letreros dentro del archivo generado.
Ejemplo:

SET NOTIFY off
set talk OFF
SET DEVICE TO FILE cTuarchivo.TXT
SET PRINTER OFF

Select tutabla01
linea=0
scan
@ linea,0 say tucampo
@ linea,0 SAY tucampo
linea=linea+1
endscan

Select tutabla02
scan
@ linea,0 say tucampo
@ linea,0 SAY tucampo
linea=linea+1
endscan
SET DEVICE TO PRINTER
SET PRINT off
Con esto te genera un archivo de texto llamado cTuarchivo.TXT
Lo de imprir los letreros de los campos, puedes hacer u rejuego para que solo te lo imprima cuando comienze a sacar los datos de cada tabla.
Tambien puedes usar @linea,0 say padl(tucampo,5,"0"), ahy te rellena con ceros a la izquiera.

Prueba a ver.
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:archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 20:49:38
holaa hector te agradezco mucho,es casi lo que quiero lograr,estube probando el codigo,los campos me tienen que quedar delimitados por ";" y en este caso se para los campos con un cuadradito,como puedo hacer para que no los separe con cuadraditos???saludos y muchas gracias!!
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:archivo txt

Publicado por adrian (39 intervenciones) el 04/12/2007 20:26:55
holaa,bueno muchas gracias por tu tiempo,funciona perfecto me ah solucionado otro problema que iba a tener,lastima que para lo del txt no me sirva,porque despues de pasarlo a txt con:
select definitivo
COPY TO prueba.txt DELIMITED WITH "" with CHARACTER ;;
voy a tener siempre la misma cantidad de campos delimitado por ";" en todas las filas y la idea es que mantenga la cantidad de campos de cada cursor original
cualquier idea bienvenida,muchas gracias,saludos!
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:archivo txt

Publicado por andrea (1 intervención) el 21/01/2008 05:53:55
por favor me puedes ayudar con lo siguiente

tengo un sistema de facturacion, ya estaba trabajando muy bien, de repente ya no elimina los registros de las tablas.
lo hago desde un command con el DELETE FROM mitabla y no lo hace, solo selecciona los registros en la misma tabal, por favor ayudame
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