Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Não havia nenhum arquivo anexado . . .
Você já confirmou que o arquivo do qual você está tentando ler existe de fato ? por favor olhe na pasta correta e verifique . . . uma outra coisa, porque você tem uma função chamada filewriting() para READ de um arquivo ?
Caro RaptorUK,
Sim, eu posso confirmar que o arquivo DAT está na pasta MQL4/files. De fato, informei que coloquei uma condição se o arquivo aberto é bem sucedido e na maioria das vezes (90%) e 10% falha em abrir e gerar um código de erro 5004.
A função filewriting() é chamada quando um fileopen falha. Então, a função filewriting() tenta criar um arquivo (aberto para escrita) e, ao final da função, faz o fechamento do arquivo.
Anexei o arquivo da declaração Print() da pasta MQL4\logs. Cliquei no botão "Choose File" e pude ver que o nome do arquivo era exibido.
Saudações cordiais,
Raisingfire
Caro RaptorUK,
Sim, eu posso confirmar que o arquivo DAT está na pasta MQL4/files. De fato, informei que coloquei uma condição para que o arquivo aberto seja bem sucedido e na maioria das vezes (90%) e 10% não consegue abrir e gerar um código de erro 5004.
A função filewriting() é chamada quando um fileopen falha. Então, a função filewriting() tenta criar um arquivo (aberto para escrita) e, ao final da função, faz o fechamento do arquivo.
Anexei o arquivo da declaração Print() da pasta MQL4\logs. Cliquei no botão "Choose File" e pude ver que o nome do arquivo era exibido.
Saudações cordiais,
Raisingfire
De onde vêm estes arquivos ? o que os escreve ?
Caro RaptorUK,
Todos os arquivos DAT devem ser um arquivo temporário para manter os valores iniciais de certos indicadores toda vez que abrimos uma posição. Nós os criamos e usamos em nossos programas.
Usamos a função padrão para abrir o arquivo para escrita:
fhandle=FileOpen(mf, FILE_BIN|FILE_WRITE);
Gravação de matriz padrão para os arquivos temporários (DAT) :
FileWriteArray(fhandle, mpara, 0, maxori); // onde mpara é o array, Maxori é o tamanho máximo do array
Função de fechamento de arquivo padrão:
FileClose(fhandle);
Obrigado por sua ajuda.
Cumprimentos,
Raisingfire
Caro RaptorUK,
Todos os arquivos DAT devem ser um arquivo temporário para manter os valores iniciais de certos indicadores toda vez que abrimos uma posição. Nós os criamos e usamos em nossos programas.
Usamos a função padrão para abrir o arquivo para escrita:
fhandle=FileOpen(mf, FILE_BIN|FILE_WRITE);
Gravação de array padrão para os arquivos temporários (DAT) :
FileWriteArray(fhandle, mpara, 0, maxori); // onde mpara é o array, Maxori é o tamanho máximo do array
Função de fechamento de arquivo padrão:
FileClose(fhandle);
OK, mas você não respondeu à minha pergunta . . . eles são escritos pela mesma EA que está tentando lê-los ? ou por uma EA, Roteiro ou Indicador diferente ?
OK, mas você não respondeu à minha pergunta . . . eles são escritos pela mesma EA que está tentando lê-los ? ou por uma EA, Roteiro ou Indicador diferente ?
A função de redação de arquivos está em todas na mesma EA. Toda vez que emitimos um "FILEOPEN", sempre o seguimos por "FILECLOSE" depois de fazermos determinada tarefa com ele. Portanto, não creio que haja um problema com o arquivo trancado que está sendo tentado para ser aberto.
Há muito tempo atrás, tivemos esse tipo de problema onde um arquivo trancado estava sendo tentado para ser lido. E o MT4 o relatou automaticamente em seu arquivo de registro. Assim, após 1 ou 2 dias, os logs e pastas de histórico se tornaram enormes em tamanho (centenas de Mbytes), cheios desses relatórios. Em seguida, emitimos um FILECLOSE toda vez que fazemos o FILEOPEN. O problema foi resolvido e os logs e as pastas de histórico nunca mais se tornaram enormes. Agora, os logs e as pastas de histórico combinados contêm apenas menos de 100 Kbytes (apesar do código de erro 5004 que continua aparecendo).
Obrigado,
Raisingfire
A função de escrita de arquivos está em todas na mesma EA. Toda vez que emitimos um "FILEOPEN", sempre o seguimos por "FILECLOSE" depois de fazermos determinada tarefa com ele. Portanto, não creio que haja um problema com o arquivo trancado que está sendo tentado para ser aberto.
Há muito tempo atrás, tivemos esse tipo de problema onde um arquivo trancado estava sendo tentado para ser lido. E o MT4 o relatou automaticamente em seu arquivo de registro. Assim, após 1 ou 2 dias, os logs e pastas de histórico se tornaram enormes em tamanho (centenas de Mbytes), cheios desses relatórios. Em seguida, emitimos um FILECLOSE toda vez que fazemos o FILEOPEN. O problema foi resolvido e os logs e as pastas de histórico nunca mais se tornaram enormes. Agora, os logs e as pastas de histórico combinados contêm apenas menos de 100 Kbytes (apesar do código de erro 5004 que continua aparecendo).
OK, obrigado pela informação. Estou sem idéias . . . tudo que posso sugerir agora é criar um teste EA que reproduza o assunto que você pode postar aqui e enviar para MetaQuotes como parte de um ticket do Service Desk e pedir-lhes para investigar.
Caro RaptorUK,
Obrigado por toda a sua ajuda e informações de qualquer forma. Vou tentar fazer o que você me disse.
Mais uma vez, obrigado.
Cumprimentos,
Caro RaptorUK,
Obrigado por toda a sua ajuda e informações de qualquer forma. Vou tentar fazer o que você me disse.
Mais uma vez, obrigado.
Cumprimentos,
Existe uma solução para o erro 5004, por favor? Estou recebendo a mesma mensagem de erro ao tentar escrever em um arquivo.
Estou no build 765.
Sua ajuda é muito apreciada.