FoxPro/Visual FoxPro - alexcoinc2

 
Vista:

alexcoinc2

Publicado por alexcoinc2 (450 intervenciones) el 21/06/2007 21:15:54
SALUDOS:

Tengo problemas con la creación de un archivo plano (.TXT)

Cuando lo creo asi:

DO WHILE .NOT. EOF() && ESTE ARCHIVO TIENE UN CAMPO DONDE ESTAN LOS CAMPOS SEPARADOS POR COMAS
_MLINE=0
IMPRIMA=MLINE(CADENA,1,_mline)
@prow(),0 SAY IMPRIMA+chr(13)
SKIP
ENDDO

El sistema me genera el archivo bien; pero al mirarlo por el block
de notas, se ve un cuadrito negro como separador o retorno de carro,
seguramente el CHR(13) que le coloco al final de cada linea que imprime.

xxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxx(AQUI EL CUADRITO NEGRO)yyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyy

Todo seguido.

Si lo abro por el EDIT del DOS, este cuadrito negro se mustra como
un "SIMBOLO MUSICAL".

xxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxx(AQUI EL SIMBOLO MUSICAL)yyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyy

Todo seguido.

PERO:

Al abrir el mismo archivo por el WORD PAD, el archivo se muestra correctamente
con los registros separados por comas en cada linea, ej.

xxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxx
yyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyy

SI ENVIO ESTE ARCHIVO PLANO, SEPARADO POR COMAS A UN SISTEMA VALIDADOR
DE UNA INSTITUCION A LA CUAL HAY QUE ENVIARLO, ESTE VALIDADOR ME DICE
QUE PRESENTA UN ERROR, PUES LA FILA ES MUY LARGA (OSEA LONGITUD ERRADA)

PREGUNTAS:

QUE SERA LO QUE SUCEDE ?
SERA PROBLEMA DEL VALIDADOR ?
COMO PUEDO REALIZAR UN RETORNO DE CARRO SIN QUE SEA EL CHR(13), ESTO PARA
QUE ME BAJE EL PROXIMO REGISTRO Y ME QUEDEN ASI:

xxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxxx,xxxxxxxxxxxx
yyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyyy,yyyyyyyyyyyy

ABRIENDOLO EN CUALQUIER EDITOR: BLOCK DE NOTAS, WORD PAD O EDIT ??


Gracias por su colaboración.


[email protected]
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

RE:alexcoinc2

Publicado por Hector R. De los Santos (270 intervenciones) el 21/06/2007 22:38:26
Que tal...
Me imagino que si lo estas creando estas tomando los datos de una tabla.
Puedes usar @cLinea,0 say ... combinado con SCAN/ENDSCAN
ejemplo

cLinea=0 &Iniciar en 0 la variable de Linea
Select tabla
Scan &Inicio Ciclo Hasta que existan datos en la tabla seleccionada.
@cLinea,0 say(campo)
cLinea=cLinea+1 &&Esto hace que vaya saltando de linea.
EndScan & Finalizo Ciclo

Es solo una idea..espero que te sirva..Suerte
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:alexcoinc2

Publicado por adrian (228 intervenciones) el 22/06/2007 00:12:05
Para no tener problemas haz lo siguente:

****************
create cursor auxiliar (big C(200)) && esto depende de la totalidad de tus campos
use mitabla
do while.not.eof()
scatter memvar
regis=recno()
m.big=alltrim(m.campo1)+','+alltrim(m.campo2)+','+alltrim(str(m.campo3, 9,2)) && etc,etc
use auxiliar
gather memvar
GOTO regis
skip
enddo
use auxiliar
copy to archivo.txt type SDF
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