Page 1 of 1

COMO EVITAR Q MEMOWRIT GRABA EL FINAL UN RETORNO DE CARRO

Posted: Fri Oct 16, 2009 5:42 am
by Vladimir Zorrilla
AMIGOS

TENGO UNA BASE DE DATOS Y TENGO QUE GENERAR UN ARCHIVO DE TEXTO CON SU
CONTENIDO

file:=ruta(4)+subs(bases[j],1,8)
_t("DIG","Generando archivo "+ALLTRIM(FILE)+".TXT" )


LO HAGO USANDO EL COPY TO FILE

COPY TO &file SDF


PERO ME GENERAR UN RETORNO DE CARRO AL FINAL , ESE DATO LO DEBO
EVITAR POR QUE EL ARCHIVO ES INVALIDO PARA UN SISTEMA QUE LO USA.

LEVANTO EL ARCHIVO

recorta:= memoread( file+".txt" )


Y RECORTO LOS 2 _


NOTEPASES:= SUBS( recorta,1,LEN(RECORTA)-2)

AQUI SE VE QUE YA NO ESTAN ESOS CUADRADITOS QUE REPRESENTAN AL RETORNO DE CARRO

msgGET(file+".txt",, @NOTEPASES)

PERO AL GRABARLO CON MEMOWRIT ESTE VUELVE A PONER AL FINAL
EL RETORNO DE CARRO


memowrit( file+".txt" , NOTEPASES)


AQUI VEO AL FINAL EL CUADRADITO

WAITRUN("NOTEPAD "+ALLTRIM(FILE)+".TXT")


COM PUEDO EVITAR GRABAR ESE RETORNO DE CARRO

MIL GRACIAS POR LA AYUDA

Re: COMO EVITAR Q MEMOWRIT GRABA EL FINAL UN RETORNO DE CARRO

Posted: Fri Oct 16, 2009 7:58 am
by Antonio Linares
Vladimir,

En vez de MemoWrit(), puedes usar HB_MEMOWRIT() que no añade el retorno de carro al final :-)

Re: COMO EVITAR Q MEMOWRIT GRABA EL FINAL UN RETORNO DE CARRO

Posted: Fri Oct 16, 2009 3:01 pm
by Vladimir Zorrilla
Gracias por responder

pero esa funcion no existe en xharbour 0.82

No tendra codigo fuente en C para integrarla por favor

Muchas gracias por la ayuda

Re: COMO EVITAR Q MEMOWRIT GRABA EL FINAL UN RETORNO DE CARRO

Posted: Fri Oct 16, 2009 5:07 pm
by wmormar
Vladimir Zorrilla wrote:Gracias por responder

pero esa funcion no existe en xharbour 0.82

No tendra codigo fuente en C para integrarla por favor

Muchas gracias por la ayuda
Vladimir,

De www.xharbour.org bajas los fuentes.

saludos

Re: COMO EVITAR Q MEMOWRIT GRABA EL FINAL UN RETORNO DE CARRO

Posted: Fri Oct 16, 2009 5:35 pm
by Manuel Aranda
Hola Vladimir, así es como lo hago:
#include "fileio.ch"
Local nHandle
nHandle:=FOpen((nombreficherotxt), FO_READWRITE)
//
//Se abre el fichero a bajo nivel para eliminar el último
//carácter de fin de fichero
//
IF FERROR() !=0
TONE(500,2)
MsgInfo("Error de apertura del fichero ;compruebe que el mismo existe en C:\",{" Pulse Intro "})
ELSE
FSeek(nHandle,-1,FS_END)
FWrite(nHandle,"")
ENDIF
//
IF !FClose(nHandle)
TONE(200,1)
TONE(100,1)
TONE(200,1)
MsgInfo("Error cerrando el fichero ...")
ENDIF
//