FileOpen Erro 5004

Para adicionar comentários, por favor Faça o login ou registrar
Pedro Quina
205
Pedro Quina  

Boa noite


      Ao executar o código , obtenho erro 5004 no 2o FileOpen , linha 498.

file1


Então resolvi inverter e passei a ter o erro na linha 500, no 2o FileOpen.


file2


Existe alguma limitação de números de arquivos que possam ser abertos simultaneamente utilizando MQL 5 ?




Flavio Jarabeck
137250
Flavio Jarabeck  
Pedro Quina:

Boa noite


      Ao executar o código , obtenho erro 5004 no 2o FileOpen , linha 498.


Então resolvi inverter e passei a ter o erro na linha 500, no 2o FileOpen.



Existe alguma limitação de números de arquivos que possam ser abertos simultaneamente utilizando MQL 5 ?




Dê um Print nas 2 variáveis, antes de executar o Read e o Write...

Rogerio Giannetti Torres
3161
Rogerio Giannetti Torres  
Pedro Quina:

Boa noite


Olá Pedro, tudo bem?

Bom, eu nunca tentei abrir ao mesmo tempo um mesmo arquivo para gravação e leitura. 

Eu estava lendo a documentação sobre FILE_SHARE_READ =  

Acesso compartilhado para leitura a partir de vários programas. Flag é usado em FileOpen(), mas ele não substitui a necessidade de indicar o flag FILE_WRITE e/ou FILE_READ ao abrir um arquivo.


Pelo visto não funciona abrir um arquivo para gravação e compartilhar a leitura.

Já tentou fazer assim: 


filehandleBuy=
FileOpen("robotBUY.dat",FILE_READ,FILE_WRITE|FILE_CSV|FILE_COMMON);

filehandleSell=FileOpen("robotSELL.dat",FILE_READ,FILE_WRITE|FILE_CSV|FILE_COMMON);

Pedro Quina
205
Pedro Quina  
Rogerio Giannetti Torres:

Olá Pedro, tudo bem?

Bom, eu nunca tentei abrir ao mesmo tempo um mesmo arquivo para gravação e leitura. 

Eu estava lendo a documentação sobre FILE_SHARE_READ =  

Acesso compartilhado para leitura a partir de vários programas. Flag é usado em FileOpen(), mas ele não substitui a necessidade de indicar o flag FILE_WRITE e/ou FILE_READ ao abrir um arquivo.


Pelo visto não funciona abrir um arquivo para gravação e compartilhar a leitura.

Já tentou fazer assim: 


filehandleBuy=
FileOpen("robotBUY.dat",FILE_READ,FILE_WRITE|FILE_CSV|FILE_COMMON);

filehandleSell=FileOpen("robotSELL.dat",FILE_READ,FILE_WRITE|FILE_CSV|FILE_COMMON);

Eu consigo abrir apenas UM arquivo com as flags utilizadas no meu código. O que eu não consigo é abrir mais de um arquivo.

Flavio Jarabeck
137250
Flavio Jarabeck  
Pedro Quina:

Eu consigo abrir apenas UM arquivo com as flags utilizadas no meu código. O que eu não consigo é abrir mais de um arquivo.

Meu caro, você está tentando abrir o mesmo arquivo 2 vezes. O SO não vai deixar.

Por isso dei a dica do Print(), pra você sacar o que está acontecendo.

Rogerio Giannetti Torres
3161
Rogerio Giannetti Torres  
Pedro Quina:

Eu consigo abrir apenas UM arquivo com as flags utilizadas no meu código. O que eu não consigo é abrir mais de um arquivo.

Pedro, 

Nós  já te dissemos que você está tentado abrir o mesmo arquivo para gravação e leitura, se é isso mesmo que você deseja a sintaxe correta é mostrada abaixo.

fileHandle=FileOpen(fileName,FILE_READ|FILE_WRITE|FILE_CSV);

Rodrigo Malacarne
Moderador
8090
Rodrigo Malacarne  
Rogerio Giannetti Torres:

Pedro, 

Nós  já te dissemos que você está tentado abrir o mesmo arquivo para gravação e leitura, se é isso mesmo que você deseja a sintaxe correta é mostrada abaixo.

Corrigindo a sintaxe:

fileHandle=FileOpen(fileName,FILE_READ|FILE_WRITE|FILE_CSV);
Abraços,
Malacarne
Para adicionar comentários, por favor Faça o login ou registrar