Página 1 de 1

escrever continuamente em arquivo texto.

Enviado: 17 Fev 2005 08:28
por clebermano
Prezados amigos, me deparo com a seguinte situacao.Eu preciso gerar um arquivo texto continuamente, ou seja, a cada vez que eu termino uma venda eu quero grava-la sequencialmente no arquivo texto, hoje o q esta acontecendo eh o seguinte, quando eu termino uma venda e comeco outra o arquivo atual "mata", o anterior, e assim pra mim nao da.
eu uso fcreate() para criar o arquivo, caso ele nao exista, depois uso o fopen(). para abri-lo, e na sequencia, fwrite(), para escrever, e quando eu saio do modulo, uso fclose().
Se alguem puder me ajudar agradeco desde ja.
obrigado.

Enviado: 17 Fev 2005 09:04
por Clipper
Prezado Colega

Você deve usar mais ou menos assim...


CONTEUDO="MARCELO E LINDO E MARAVILHOSO"+CHR(13)+CHR(10)
HAND=FOPEN("ARQLOG.TXT",2)
FSEEK(HAND,0,2)
ESCREVE=FWRITE(HAND,CONTEUDO)

Até logo.

Marcelo

Enviado: 17 Fev 2005 09:57
por evolver
O problema deve estar na pesquisa da existência do arquivo. Ou então o ponteiro de arquivo estando no início do arquivo vai apagando conforme vai sobreescrevendo. Experimente usar o fseeh(hand,0,2) como o amigo Marcelo passou pra posicionar o ponteiro de arquivo ao final antes de começar a escrever.

Pra verificar a existência de arquivo ao invés de usar um if (existe arquivo)/endif tente

hand=fopen(arquivo,2)
if ferror() # 0 (ou tente ferror() = 2 pra file not found)
fcreate(arquivo,0)
endif

Assim ele só cria o arquivo em caso de erro de abertura.

Enviado: 17 Fev 2005 18:36
por clebermano
ok, pesoal obrigado, vou testar as dicas. valew mesmo.
so vou mudar o conteudo da string do nosso amigo clipper ehehehehe