Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 525

 
-Aleks-:
Die Zeichenkette a="true" soll verwendet werden;

alternativ über eine benutzerdefinierte Funktion

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

wenn Sie die Zeichenfolge aus einer Datei lesen, können Sie

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

alternativ über eine benutzerdefinierte Funktion

wenn Sie die Zeichenfolge aus einer Datei lesen, können Sie

Danke, interessante Lösung!

Ich brauche, um aus einer Datei zu lesen - ich hatte eine benutzerdefinierte Klasse gemacht, ich wollte eine Funktion für bool-Werte dort zu machen, aber ich verstehe, dass FileReadBool nicht durch Analogie funktioniert?

Die Klasse gibt einen Wert nach Spalte und Zellennummer zurück. Auszug:

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

//| 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);

  }

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

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

Nickolay72, 2016.02.29 13:56

Guten Tag meine Herren, vielleicht hat jemand ein solches Problem, beraten.Ich habe einen Berater auf meinem Computer Win7x32 funktioniert ohne Problemegeschrieben, aber ich habe es auf einem anderen Computer, Win8x64, und es wird nicht funktionieren. Nicht nur, dass alle umständlich installiert, dreimal neu installieren, bis ich davon überzeugt war, dass die MT4 auf dem achten installiert ist, der Berater nur durch die Datenbank kann an Ort und Stelle von einem Flash-Laufwerk geworfen werden, und es funktioniert immer noch.

 
-Aleks-:

Danke, interessante Lösung!

Ich brauche, um aus einer Datei zu lesen - ich hatte eine Klasse gemacht, um zu bestellen, ich wollte eine Funktion für bool-Werte dort zu machen, aber ich verstehe, dass FileReadBool nicht durch Analogie funktionieren wird?

Die Klasse gibt einen Wert nach Spalte und Zellennummer zurück. Auszug:

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

//| 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]));
Wenn Sie es so schreiben, erhalten Sie natürlich einen Kompilierfehler, da Sie das Dateihandle übergeben müssen.
 

Nickolay72, 2016.02.29 13:56

Добрый день господа.Может кто сталкивался с такой проблемой,подскажите.Ich schrieb ein EA, auf meinem Computer Win7x32 funktioniert ohne Probleme. Ich habe es auf einem anderen Computer, Win8x64, und es funktioniert nicht. Nicht nur ist es eine chaotische Installation, habe ich es dreimal neu installiert, bis ich davon überzeugt war, dass MT4 installiert es auf 8, EA nur durch die Datenbank, kann ich es an Ort und Stelle aus dem Flash-Laufwerk, aber es funktioniert nicht. Alles, was in den Test, Aufträge gestellt werden. In der Arbeit lächelt es der Bastard, aber weigert sich, zu arbeiten. Wie es funktioniert???

Das Flash-Laufwerk muss als NTFS formatiert sein.
 
Sergey Gritsay:
Natürlich erhalten Sie einen Kompilierungsfehler, wenn Sie es auf diese Weise schreiben, weil Sie das Dateihandle übergeben müssen.

Es ist nicht klar, warum sie nicht eine Standard-String-zu-Wert-Übersetzung für bool gemacht haben.

Ich werde 0 und 1 in die Datei schreiben und eine Überprüfung vornehmen.

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

else return (false);

Wird es funktionieren?

 
-Aleks-:

Es ist nicht klar, warum sie nicht eine Standard-String-zu-Wert-Übersetzung für bool gemacht haben.

Ich werde 0 und 1 in die Datei schreiben und eine Überprüfung vornehmen.

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

else return (false);

Wird es funktionieren?

sollte, ersetzen Sie diese Zeile hier

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

ändern Sie es auch in

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

sollte, diese Zeile hier.

Ersetzen Sie diese Zeile auch durch

Ich danke Ihnen! Ich werde es ausprobieren.
 
Karputov Vladimir:

Nickolay72, 2016.02.29 13:56

Das Flash-Laufwerk muss als NTFS formatiert sein.
Das Flash-Laufwerk ist formatiert, das Terminal ist auf automatischen Handel eingestellt, der EA ist aktiviert - er handelt nicht.
Grund der Beschwerde: