Clarion - Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

   
Vista:

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Luis (3 intervenciones) el 24/01/2013 19:59:47
Problema:

Quiero exportar los registros de mi tps debo añadir chr(13) y chr(10) a la linea de registro en txt para que pueda ser importado por otra aplicación.
PUEDO exporta correctamente cada registro PERO me graba por cada linea otra adicional en blanco en el txt que no encuentro la forma de eliminar o evitar que se guarde..

Estoy usando esto:

open(filetps,1)
set(filetps)
loop
next(filetps)
if errorcode() then break.
if tps:registro<>''
txt:registro=tps:registro&chr(13)&(chr(10)
add(filetxt)
end
end

y sale.

txt:registro bien incluyendo los caracteres de control
linea en blanco
txt:registro bien incluyendo los caracteres de control
linea en blanco

necesito si o si eliminar las lineas en blanco
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
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Francisco J. Valencia (85 intervenciones) el 24/01/2013 22:51:39
Luis:

Crea una tabla tipo o driver BASIC y configura los dos caracteres de control (10 y 13) como delimitadores de fin de registro. Asi ya no es necesario que añadas el &chr(13)&chr(10).

Ahora si asi definiste tu estructura (BASIC) entonces añadir los caracteres de control es redundante.

Saludos

P.D. te copio la ayuda del ENDOFRECORD


DRIVER('BASIC', '/ENDOFRECORD = n [,m ]' )

[ EOR" = ] SEND(file, 'ENDOFRECORD [ = n [,m ]]' )

Specifies the end of record delimiter.

n represents the number of characters that make up the end-of-record delimiter.

m represents the ANSI code(s) for the end-of-record delimiter, separated by commas. The default is 2,13,10, indicating 2 characters mark the end-of-record, namely, carriage return (13) and line feed (10). SEND returns the end of record delimiter.
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

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Luis (3 intervenciones) el 25/01/2013 03:34:05
Gracias por tu ayuda, Francisco.
LLEVO MUCHAS HORAS tratando de solucionar este problema.
Los intentos que hice no dieron resultado:

Por un lado modifique en el archivo .clw la definición del FILE y le añadí en DRIVER('ASCII', '/ENDOFRECORD =2,13,10' );

Y con endofrecord hice varios intentos pero no logro que añada los caracteres ascii a cada registro.

seguramente estoy usando mal este atributo, es decir no se lo se aplicar ..

se lo mande en el codigo de exportación que tenía hecho así:

open(filetps,1)
set(filetps)
loop
next(filetps)
if errorcode() then break.
if tps:registro<>''

txt:registro=tps:registro !Elimine el &chr(13)&(chr(10)
SEND(filetxt,'ENDOFRECORD=2,13,10') !TRATE DE USAR EL ATRIBUTO ENDOFRECORD

add(filetxt)
end
end

nuevamente, gracias por el comentario
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

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Francisco J. Valencia (85 intervenciones) el 25/01/2013 17:36:45
Luis:
No creo que modificar el clw sea lo correcto.

La manera que a mi me funciona es en una window en el embed Local Data - Other Declarations declaro la estructura.


REPORTE96 FILE,DRIVER('BASIC','/COMMA=9','/ENDOFRECORD=2,13,10'),NAME(GLO:NombreArchivo),PRE(R96)
RECORD RECORD,PRE()
Temporal STRING(128)
FechaHora STRING(128)
Agencia STRING(128)
Folio STRING(128)
Cuenta STRING(128)
us STRING(128)
Calle STRING(128)
NoExterior STRING(128)
Colonia STRING(128)
solicitud STRING(128)
estatustramite STRING(128)
estatusfolio STRING(128)
claveusr STRING(128)
grupo7 STRING(128)

END
END
Asi no saturo el diccionario con tablas que solo me sirven para exportar o importar datos.
Una vez que declaras la tabla, ya la puedes usar. No aparece en el file schematics porque no se declara en el diccionario pero no importa.

Si quieres importar datos tu código seria:
setcursor(cursor:wait)
LOC:Contador = 0
if exists(GLO:NombreArchivo) then
message('el archivo es: ' & GLO:NombreArchivo)
OPEN(REPORTE96)
SET(REPORTE96) !Beginning of file in keyed sequence
LOOP !Process all records
NEXT(REPORTE96) ! read a record sequentially
IF ERRORCODE() THEN BREAK. !Break loop on attempt to read past end of file
DO GrabaOrden ! call last in first out routine
!!do ActualizaModelo
yield
END
close(REPORTE96)
end
setcursor()
message('PROCESO CONCLUIDO','AVISO')

En tu caso que quieres exportar tienes que usar el comando CREATE(tabla)

GLO:NombreArchivo = LOC:ExcelReportName
create(REPORTE96)
open(REPORTE96)
loop
clear(REPORTE96)
R96:Temporal = 'CONTRATO'
........
ADD(REPORTE96)
end
close(REPORTE96)

Saludos y espero que te de las pistas para resolver tu problema.
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

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Luis (3 intervenciones) el 25/01/2013 19:05:13
Gracias nuevamente por tu ayuda.
Voy a trabajar en base a tu comentario.
Buen fin de semana.
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

Como exportar de tps a ascii (txt) con chr(13) y chr(10)??

Publicado por Alejandro (1 intervención) el 23/09/2014 03:42:03
Hola, les cuento que tuve el mismo problema. Lo resolví poniendo en el diccionario usando driver ASCII /ENDOFRECORD='2[,13,10]'

Luego en el embeds

Campo=dato&'<13><10>'

Santo remedio.

Espero sirva.

Saludos

Alejandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar