Se houver 5 linhas no ficheiro. Em vez disso, quero escrever 3. Movo o ponteiro para o início do ficheiro, escrevo 3.... E atrás deles há mais 2... Assim, há 5 linhas no ficheiro em vez de 3 - escudo...
vyv: Se houver 5 linhas no ficheiro. Quero sobreescrevê-los com 3. Movo o ponteiro para o início do ficheiro, escrevo 3.... E há mais 2 atrás deles... Portanto, há 5 linhas no ficheiro em vez de 3 - um escudo...
Abra um ficheiro com a bandeira FILE_WRITE apenas para escrita e escreva o que quiser. Qualquer coisa antes disso será apagada.
Existem algumas peculiaridades de trabalhar com bandeiras de leitura e de escrita:
Se FILE_READ for especificado - é feita uma tentativa de abrir um ficheiro que já existe. Se o ficheiro não existir, o ficheiro não pode ser aberto, não é criado um novo ficheiro.
Se FILE_READ|FILE_WRITE - um novo ficheiro é criado se não houver ficheiro com esse nome.
Se FILE_WRITE - o ficheiro é recriado com tamanho zero.
No seu caso, necessita de utilizar matrizes dinâmicas
Obrigado! Funciona.
Corrigir, se não mesmo difícil, o erro no testador.
As EAs ficam cegas ao processar uma carraça. É impossível actualizar a informação sobre um símbolo durante o processamento de uma carraça.
No comércio normal, isto não acontece e todos os dados são actualizados.
https://www.mql5.com/ru/forum/4270/page2#comment_87059
Sem esta correcção, é impossível processar correctamente os erros comerciais.
Quando, durante a optimização, todas as transacções estão no lado positivo, o ficheiro de relatório xml é torto.
... Por favor, corrijam-na.
Ou não percebo alguma coisa, ou esqueceu-se de fazer FileClear() funcionar
Agora, segundo sei, para limpar um ficheiro tem de 1 fechar, 2 apagar, 3 abrir. - Isto é muito inconveniente.
Ou não percebo alguma coisa, ou esqueceu-se de fazer FileClear() funcionar
Agora, segundo sei, para limpar um ficheiro tem de 1 fechar, 2 apagar, 3 abrir. - Isto é muito inconveniente.
Porquê limpar o ficheiro? Mover o ponteiro do ficheiro para 0 e começar a escrever.
Se houver 5 linhas no ficheiro. Quero sobreescrevê-los com 3. Movo o ponteiro para o início do ficheiro, escrevo 3.... E há mais 2 atrás deles... Portanto, há 5 linhas no ficheiro em vez de 3 - um escudo...
Abra um ficheiro com a bandeira FILE_WRITE apenas para escrita e escreva o que quiser. Qualquer coisa antes disso será apagada.
Existem algumas peculiaridades de trabalhar com bandeiras de leitura e de escrita:
Parece que a função FileChangeSize é necessária
A função FileChangeSize parece ser necessária
E esqueceram-se também das funções de renomeamento de ficheiro/pasta.
// OK, concordo, pode renomear com FileMove(....), mas para pastas precisamos também de um análogo. :)