Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 525

 
-Aleks-:
Que seja usado um cordel a="verdadeiro";

alternativamente através de uma função personalizada

bool StrToBool(string text)
{
 if(text=="true")return(true);
 if(text=="false")return(false);
}

se ler a cadeia a partir de um ficheiro, pode

bool  FileReadBool( 
   int  file_handle      // handle файла 
   );
 
Sergey Gritsay:

alternativamente através de uma função personalizada

se ler a cadeia a partir de um ficheiro, pode

Obrigado, solução interessante!

Preciso de ler a partir de um ficheiro - mandei fazer uma classe personalizada, queria fazer uma função para valores de bool também lá, mas compreendo que a analogia FileReadBool não vai funcionar?

A classe devolve um valor por coluna e número de célula. Excerto:

//+------------------------------------------------------------------+

//| GetDoubleValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetDoubleValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(StringToDouble(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| GetBoolValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetBoolValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(FileReadBool(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

Nickolay72, 2016.02.29 13:56

Boa tarde cavalheiros, talvez alguém tenha enfrentado um tal problema, aconselhem.Escrevi um conselheiro no meu computador Win7x32 funciona sem problemas, mas coloquei-o noutro computador, Win8x64, e não funcionará. Não só que tudo desajeitadamente instalado, três vezes reinstalado, até estar convencido de que o MT4 está instalado no oitavo, o conselheiro só através da base de dados pode ser colocado no lugar a partir de uma pen drive, e funciona recusa-se a funcionar.

 
-Aleks-:

Obrigado, solução interessante!

Preciso de ler de um ficheiro - mandei fazer uma aula por encomenda, queria fazer uma função para valores de bool lá, mas compreendo que FileReadBool não vai funcionar por analogia?

A classe devolve um valor por coluna e número de célula. Excerto:

//+------------------------------------------------------------------+

//| GetDoubleValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetDoubleValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(StringToDouble(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| GetBoolValue                                                   |

//+------------------------------------------------------------------+

double CSVReader::GetBoolValue(int row,int column)

  {

   if(CheckIndexes(row,column)==false) return(0.0);

//---

   int index=m_total_columns*row+column;

   if((index>=0) && (index<ArraySize(m_cells)))

     {

      return(FileReadBool(m_cells[index]));

     }

   return(0.0);

  }

//+------------------------------------------------------------------+

return(FileReadBool(m_cells[index]));
Quando se escreve assim, é claro que se obtém um erro de compilação, uma vez que se tem de lhe passar o cabo do ficheiro.
 

Nickolay72, 2016.02.29 13:56

Добрый день господа.Может кто сталкивался с такой проблемой,подскажите.Escrevi um EA, no meu computador Win7x32 funciona sem problemas. Coloquei-o noutro computador, Win8x64, e não funciona. Não só é uma instalação confusa, reinstalei-o três vezes, até me convencer que o MT4 o instala no 8, EA apenas através da base de dados, posso colocá-lo no lugar a partir da pen drive, mas não funciona. Tudo no teste, as ordens são colocadas. No trabalho, sorri ao bastardo, mas recusa-se a funcionar. Como fazê-lo funcionar???

A unidade flash precisa de ser formatada como NTFS.
 
Sergey Gritsay:
É claro que receberá um erro de compilação quando o escrever dessa forma, porque tem de passar o cabo do ficheiro para dentro dele.

Não é claro porque não fizeram uma tradução padrão de fio a fio para bool.

Escreverei 0 e 1 no ficheiro e farei um cheque.

if ( StringToDouble(m_cells[index])==1 ) return (true);

else return (false);

Irá funcionar?

 
-Aleks-:

Não é claro porque não fizeram uma tradução padrão de fio a fio para bool.

Escreverei 0 e 1 no ficheiro e farei um cheque.

if ( StringToDouble(m_cells[index])==1 ) return (true);

else return (false);

irá funcionar?

deveria, substituir esta linha aqui

double CSVReader::GetBoolValue(int row,int column)

também mudá-lo para

bool CSVReader::GetBoolValue(int row,int column)
 
Sergey Gritsay:

deveria, esta linha aqui.

substitua também esta linha por

Obrigado! Vou tentar.
 
Karputov Vladimir:

Nickolay72, 2016.02.29 13:56

A unidade flash precisa de ser formatada como NTFS.
A pen drive está formatada, o terminal está definido para o comércio automático, a EA está ligada - não negoceia.
Razão: