// Apenas 1 vez arq_Handle = FileOpen(_Symbol".txt",FILE_SHARE_READ|FILE_WRITE|FILE_ANSI|FILE_TXT); FileSeek(arq_Handle,0,SEEK_END); // quando for gravar a linha FileWrite(arq_Handle,v_arq); FileFlush(arq_Handle);}} // Apenas 1 vez FileClose(arq_Handle);
atente-se ao código acima: FileSeek (posiciona o ponteiro de gravação no fim o arquivo) apenas 1 vez após o FileOpen.
pode usar o FileFlush que faz a gravação em tempo real e não apenas ao fim do ea, o que permite usar e visualizar o arquivo enquanto o ea esta em funcionamento. Só tome cuidado que se seu ea grava muitas linhas isso consume muita memória ok.
atente-se ao código acima: FileSeek (posiciona o ponteiro de gravação no fim o arquivo) apenas 1 vez após o FileOpen.
pode usar o FileFlush que faz a gravação em tempo real e não apenas ao fim do ea, o que permite usar e visualizar o arquivo enquanto o ea esta em funcionamento. Só tome cuidado que se seu ea grava muitas linhas isso consume muita memória ok.
Uhmm....Não deu certo.
Continua deixando uma linha em branco.
Não uso nenhum "\n" e se usar pula mais uma linha.
Meu EA está gravando em um arquivo .TXT, mas sempre pula uma linha quando uso o código abaixo
FileSeek(filehandle,0,SEEK_END);
FileWrite(filehandle,xxx);
Se não uso o comando SEEK não grava nada
Que fazer para que não deixe linhas em branco?
então o dado que vc está gravando já contem um \n ou \r...
FileWrite() adiciona sempe um \r\n ao final da gravação da linha...
então o dado que vc está gravando já contem um \n ou \r...
FileWrite() adiciona sempe um \r\n ao final da gravação da linha...
Realmente, só pode ser esse motivo.
Mas que fazer se o dado que estou gravando vem das linhas abaixo?
FileWrite(filehandle, DoubleToString(mrate[1].low,2)+" ");
FileFlush(filehandle);
Realmente, só pode ser esse motivo.
Mas que fazer se o dado que estou gravando vem das linhas abaixo?
FileWrite(filehandle, DoubleToString(mrate[1].low,2)+" ");
FileFlush(filehandle);
tente fazer a gravação sem este +" " - acho que não tem utilidade já que grava somente uma variável por linha. se não der certo tente isso:
string v_arq = DoubleToString(mrate[1].low,2); FileWrite(filehandle,v_arq);
Realmente, só pode ser esse motivo.
Mas que fazer se o dado que estou gravando vem das linhas abaixo?
FileWrite(filehandle, DoubleToString(mrate[1].low,2)+" ");
FileFlush(filehandle);
Confesso que nunca usei FileWrite(), sempre usei FileWriteString()...
;)
Meus programas utilizo o FileWrite e grava somente as linhas das informações sem deixar linhas em branco.
int h=FileOpen("Arquivo"+var0+".txt",FILE_READ|FILE_WRITE|FILE_ANSI|FILE_TXT|FILE_COMMON); FileSeek(h,0,SEEK_END); FileWrite(h,string(TimeCurrent())+";"+string(var1)+";",var2+";",string(var3)+";"); FileClose(h);

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
FileSeek(filehandle,0,SEEK_END);
FileWrite(filehandle,xxx);
Se não uso o comando SEEK não grava nada
Que fazer para que não deixe linhas em branco?