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
Sergei tem vários Expert Advisors trabalhando lá, há várias filas, então é uma matriz. E é por isso que tudo parece feio. Maxim Kuznetsov sugeriu SQL, esta é a maneira correta para que estes EAs se comuniquem entre si.
Mas as linhas são lidas uma de cada vez e de alguma forma a linha certa é selecionada. E então você não precisa de uma matriz.
Eu também disse isso, mas o mql4 não suporta SQLite
Eu não liguei a biblioteca? Ou não estava lá, eu esqueci.
Eu não liguei a biblioteca? Ou não estava lá, eu esqueci.
Parece que não é possível editar um arquivo juntos ao mesmo tempo, porque a versão do arquivo que foi salva mais tarde é salva.
Por exemplo, o programa A abriu o arquivo para edição, ao mesmo tempo o programa B fez o mesmo, depois o programa A fez as mudanças e as salvou usando FileClose, depois o programa B fez o mesmo, mas quando o programa C abre o arquivo, ele não mostrará as mudanças feitas pelo programa A, mas somente as mudanças que foram implementadas e salvas pelo programa B, porque o programa B salvou o arquivo mais tarde que o programa A.
Mas isto não é certo.
Existe alguma informação sobre isso?
O trabalho simultâneo de programas com um arquivo é o pior dos males. No momento de trabalhar com o arquivo, o Consultor Especialista deve controlar a proibição de leitura/escrita deste arquivo por outros Consultores Especialistas. Usar SQL ou arquivo devariável global ou arquivo de bandeira. Caso contrário, haverá erros incompreensíveis que são difíceis de detectar.
Não é assim tão mau, existem todos os tipos de tarefas, basta levar em conta certas peculiaridades.
Aparentemente, as mudanças são salvas exatamente no momento do FileClose, e ninguém está ciente delas até então.
Parece que não é possível editar um arquivo juntos ao mesmo tempo, porque a versão do arquivo que foi salva mais tarde é salva.
Por exemplo, o programa A abriu o arquivo para edição, ao mesmo tempo o programa B fez o mesmo, depois o programa A fez alterações e as salvou usando FileClose, depois o programa B fez o mesmo, mas quando o programa C abre o arquivo, o arquivo não conterá as alterações feitas pelo programa A, mas somente as alterações que o programa B fez e salvou, porque o programa B salvou mais tarde que o programa A.
Mas isto não é certo.
Existe alguma informação sobre isso?
É difícil configurá-lo, mas não impossível. Basta verificar, antes de economizar, a hora da última mudança com o mesmo tempo quando você a abre. Nós lemos FILE_MODIFY_DATE, depois abrimos o arquivo, fazemos alterações, lemos FILE_MODIFY_DATE novamente ,comparamos com o anterior e se ninguém fez alterações, fechamos o arquivo e salvamos as alterações. Caso contrário, descartamos as mudanças... e a abrimos novamente. Assim.
Não é que o mal, as tarefas são diferentes, mas existem certas peculiaridades que precisam ser levadas em conta.
Aparentemente, as mudanças são salvas no momento do FileClose, e ninguém está ciente delas até então.
Não é um fato.
FileFlushRedefinir para disco todos os dados restantes no buffer de E/S do arquivo.
Difícil de se estabelecer, mas não impossível. É suficiente verificar, antes de escrever, a hora da última mudança com o mesmo tempo quando você a abre. Isto é, leia FILE_MODIFY_DATE, depois abra o arquivo, faça alterações, novamente leia FILE_MODIFY_DATE compare com o anterior e se ninguém fez alterações, feche o arquivo salvando as alterações. Caso contrário, descartamos as mudanças... e a abrimos novamente. Assim.
É mais ou menos o mesmo que bandeira "ocupada" (primeiro a ser servido), só que vezes mais complicada, mas a idéia é interessante, eu gosto dela, obrigado.
Não é um fato.
FileFlushRedefinir para disco quaisquer dados restantes no buffer de E/S do arquivo.
Não tenho certeza do que isso significa no contexto do FileClose save.