Clipper/FiveWin - Copia en un TXT

 
Vista:

Copia en un TXT

Publicado por Gabriel Martin (31 intervenciones) el 07/12/2005 11:57:00
Buenas a Todos:

Quisiera crear un reporte rápido de errores en un proceso de trasnferencia de datos en archivos.

Se recibe datos.txt para ser traspados a datos1.dbf. En ese traspaso se ha de verificar que un dato de datos.txt exita en datos2.dbf si no existe, y esto es lo que necesito, crear un noexite.txt donde se grave el registro de datos.txt que no existe en datos2.dbf. Posteriormente al ternimar el proceso de traspaso sería necesario que se abriese noexiste.txt para hacer una visión/impresion rápida.

Haciendo un( COPY TO "Noexite.txt" next 1 SDF ) una vez comprobado en datos2.dbf que el dato de datos.txt no existe, solo me graba un registro, el ultimo.

Tampoco consigo abrirlo son el FOpen( "Noexite.txt")

Gracias por vuestra ayuda
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
sin imagen de perfil
Val: 4
Ha mantenido su posición en Clipper/FiveWin (en relación al último mes)
Gráfica de Clipper/FiveWin

RE:Copia en un TXT

Publicado por Yamil Bracho (94 intervenciones) el 07/12/2005 13:15:47
SI vas a la carpeta correspondiente el archivo esta alli ? Si es asi agrega la ruta completa al nombre del archivo
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:Copia en un TXT

Publicado por Antoni Masana (168 intervenciones) el 07/12/2005 13:22:47
Hola Gabriel.

Primer problema: crear NOEXISTE.TXT

Puedes hacerlo de de cuatro formas. Si el volumen es grande salta la primera opción.

1.- Guarda los registros en una variable y despues guardalo con un memowrit
Ejem:

LOCAL var:=""
...
var+=reg+chr(10)+chr(13)
...
memowrit("noexist.txt", var)

2.- Usar el FOPEN

#include "Fileio.ch"
...
LOCAL Pun
....
FCREATE("noexiste.txt", 0)
Pun:=FPEN("noexiste.txt", 2) // READ-WRITE
...
FSEEK(Pun, FS_END )
FWRITE(Pun, Regis, LEN(Regis) )

3.- Crear el fichero como si fuese un listado

SET PRINTER ON
SET PRINTER TO ("noexiste.txt") ADDITIVE
SET CONSOLE OFF
? Regis
SET PRINT OFF
SET PRINT TO
SET CONSOLE ON

4.- Crear una Base de Datos: Datos3.dbf

Segundo problema: Leer/mostrar NOEXISTE.TXT

1.- usar el MEMOREAD y MEMOEDIT
2.- Usar el FOPEN
3.- con la opcion el TBROWSE con la opcion 4 (DBF)

Si el volumen es pequeño lo mas practico es la opcion 1/1 si es grande la 4/3

Nota: yo intento no utilizar cosas como COPY TO o APPEND FROM o similares, quizas porque vengo de otros lemguajes o por puda costumbre, pero cuando hay ciertos condicionantes es mejor a la vieja manera, es decir rascarse el codigo.
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:Copia en un TXT

Publicado por Gabriel Martin (31 intervenciones) el 07/12/2005 15:50:45
Buenas
Perdon pero creo que no me expliqué bien.
El proceso de recogida de datos etc, no tiene problema es un proceso que ya me funciona correctamente. El crear un txt de' errores' es simplemente por la facilidad. Lo creas lo impirmes y te deshaces de el. Para crearlo y lo crea utilizo el COPY TO "Noexit.txt" que lo crea perfectamente. Lo unico es que si ha de grabar 5 anomalias solo graba la ultima, porque las otras 4 las machacó en vez de grabar 5 lineas.

Efectivamente el fichero se encuentra en su sitio e incluso indicando el disco y directorio fopen no lo abre

Espro haber aclarado un poco mas el tema

mil gracias Gabriel
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:Copia en un TXT

Publicado por Marcelo (218 intervenciones) el 07/12/2005 19:46:43
Lo que yo hago es cargar los valores en una variable y al final con memowrite lo mando a un archivo de texto.

While .t.

//codigo de grabacion
//si hay error
clog += cClave+" no se encontro en la base"+chr(13)+chr(10)
//sino sigue

Enddo

Memowrit("c:\temp\log.txt",clog)

y despues levanto el log.txt con el note pad.
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:Copia en un TXT

Publicado por Gabriel Martin (31 intervenciones) el 09/12/2005 15:19:34
Muchas gracias Antoni y Marcelo, sabie que encontraría y asi ha sido, la respuesta a mi pregunta.

Un abrazo
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