Fehler, Irrtümer, Fragen - Seite 921

 
sergeev:

- Unterstützt der Broker die Einstellung eines Auftrags mit Zeitangabe?

Drücken Sie dazu F9 und prüfen Sie, ob die Uhrzeit eingestellt werden kann.


Hier funktioniert alles, d.h. alle schwebenden Aufträge werden ohne Fehler ausgeführt.
 
Hallo, ich habe folgende Frage - ich habe einen EA gekauft, der auf meinem Computer installiert ist, dann einen VPS-Server bestellt und denselben EA installiert. Am Ende habe ich den gemieteten Server abgelehnt, weil der Broker einen kostenlosen Service anbietet, aber ich kann den Expert Advisor nicht zum dritten Mal installieren (auf drei Geräten). Was kann ich tun? Kann ich einen Server für einen anderen aufgeben? Wohin soll ich gehen? Ich danke Ihnen!
 

Zwei Fragen zur Arbeit mit Dateien.

1. Es gibt eine Textdatei, die Zeichenketten in verschiedenen Sprachen enthält (einschließlich Japanisch, Arabisch usw.). Dementsprechend ist die Kodierung der Datei UTF8. Die Daten in der Datei werden als "Alias=Translation" geschrieben, wobei der Alias immer in Englisch und die Übersetzung in einer beliebigen anderen Sprache ist. Ich war mir sicher, dass FILE_UNICODE beim Lesen verwendet werden sollte. Aber wenn Sie die Datei so öffnen:

int fileHandle = FileOpen(fileName, FILE_READ|FILE_TXT|FILE_UNICODE, 0, CP_UTF8);

erhalten wir beim Lesen von Zeichenketten eine bedeutungslose Reihe von Hieroglyphen. Aber wenn Sie es so öffnen:

int fileHandle = FileOpen(fileName, FILE_READ|FILE_TXT|FILE_ANSI, 0, CP_UTF8);

dann wird er normal gelesen und ausgegeben (ich habe Englisch, Russisch, Ukrainisch, Japanisch und Arabisch überprüft).

Frage: Warum müssen wir das Flag FILE_ANSI verwenden? Schließlich ist ANSI für Ein-Byte-Zeichen und UTF8 für Unicode-Zeichencodierung...


2. Es gibt eine Klasse, die eine solche Methode hat:

string CTranslator::getTranslate(string str) {
//---
   int fileHandle = FileOpen(filename, FILE_READ|FILE_TXT|FILE_ANSI, 0, CP_UTF8);
   
   if ( fileHandle == INVALID_HANDLE ) {
      return(str);
   }
//---
   string temp, alias, traslation;
   int delimiterPos;
      
   for ( ; !FileIsEnding(fileHandle); ) {
      temp = FileReadString(fileHandle);
      delimiterPos = StringFind(temp, "=");
      alias = StringSubstr(temp, 0, delimiterPos);
      
      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
          
         return(traslation);
      }   
   }
   FileClose(fileHandle);
//---
   return(str);
}

Der Dateiname ist eine Eigenschaft, die bei der Initialisierung eines Objekts mit einem Wert versehen wird. Das heißt, wenn wir die Methode aufrufen, öffnen wir die Datei, lesen Zeile für Zeile, und sobald wir die übereinstimmende Zeichenkette finden, geben wir ihre Teilzeichenkette zurück. Wenn die Datei nicht geöffnet ist oder keine passende Zeichenkette vorhanden ist, wird die Zeichenkette zurückgegeben, die in die Eingabe eingegeben wurde.

Wenn wir die Methode einmal aufrufen, funktioniert alles. Aber wenn Sie mehrere Male hintereinander aufrufen - es funktioniert nur das erste Mal, während die zweite und die folgenden Versuche, die Datei zu öffnen - INVALID_HANDLE (mit print überprüft). Was könnte das Problem sein?

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы - Документация по MQL5
 
Rone:

2. Es gibt eine Klasse, die diese Methode hat:

Der Dateiname ist eine Eigenschaft, der bei der Initialisierung des Objekts ein Wert zugewiesen wird. Das heißt, wenn die Methode aufgerufen wird, öffnen wir die Datei, lesen sie Zeile für Zeile, und sobald wir eine passende Zeile finden, geben wir deren Teilstring zurück. Wenn die Datei nicht geöffnet ist oder keine passende Zeichenkette vorhanden ist, wird die Zeichenkette zurückgegeben, die in die Eingabe eingegeben wurde.

Wenn wir die Methode einmal aufrufen, funktioniert alles. Aber wenn Sie mehrere Male hintereinander aufrufen - es funktioniert nur das erste Mal, während die zweite und die folgenden Versuche, die Datei zu öffnen - INVALID_HANDLE (mit print überprüft). Was könnte das Problem sein?

Das könnte der Grund sein:

      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
          
         return(traslation);
      }   
 
Rone:

...

2. Es gibt eine Klasse, die eine Methode wie diese hat:

Der Dateiname ist eine Eigenschaft und wird bei der Initialisierung des Objekts mit einem Wert belegt. Das heißt, wenn die Methode aufgerufen wird, öffnen wir die Datei, lesen sie Zeile für Zeile, und sobald wir eine passende Zeile finden, geben wir deren Teilstring zurück. Wenn die Datei nicht geöffnet ist oder keine passende Zeichenkette vorhanden ist, wird die Zeichenkette zurückgegeben, die in die Eingabe eingegeben wurde.

Wenn wir die Methode einmal aufrufen, funktioniert alles. Aber wenn Sie mehrere Male hintereinander aufrufen - es funktioniert nur das erste Mal, während die zweite und die folgenden Versuche, die Datei zu öffnen - INVALID_HANDLE (mit print überprüft). Was könnte das Problem sein?

Vielleicht, weil die Datei nicht geschlossen wird, wenn "die Zeichenfolge zurückgegeben wird, die in die Eingabe eingegeben wurde"?
 

vielleicht funktioniert es dort

Aber hat Ihr Maklerunternehmen eine Datumsoption?

 
Contender:

Vielleicht ist das der Grund dafür:

...

tol64

...


Vielen Dank für die prompten Antworten!

Tut mir leid, ich habe es übersehen, bin eine rauchen gegangen und habe es gefunden.

Hier ist sie:

      if ( StringCompare(str, alias, false) == 0 ) {
         traslation = StringSubstr(temp, delimiterPos+1);
         FileClose(fileHandle);

         return(traslation);
      }

Es funktioniert jetzt. Die erste Frage bleibt jedoch bestehen.

 
sergeev:

Vielleicht funktioniert es ja dort.

aber hat Ihr Maklerunternehmen eine Datumsoption?

Ich habe seit einer Woche nichts mehr von meinem Makler gehört ... rrrrrrr....

 
Rone:


Vielen Dank für Ihre prompten Antworten!

Tut mir leid, ich habe es übersehen, bin eine rauchen gegangen und habe es gefunden.

Hier ist sie:

Es funktioniert jetzt. Die erste Frage bleibt jedoch bestehen.

Zur ersten Frage.

Wenn die Datei als Unicode geöffnet ist, wird keine Konvertierung vorgenommen (d.h. Ihr CP_UTF8 wird einfach ignoriert), die Daten werden "wie sie sind" gelesen.

Die Codepage funktioniert bei der Konvertierung in internen Unicode-Text ( Daten vom Typ String) beim Lesen aus einer im ANSI-Modus geöffneten Textdatei.

 
Nikos52:

Seit einer Woche habe ich von meinem Makler nichts mehr gehört ... rrrrrr....


Ist die F9-Taste an Ihrem Maklerterminal defekt?