FileOpen

 

Ich nutze MetaEditor 4 in Windows 10.

Mein Code in OnInit():

string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);

string filename=terminal_data_path+"\\MQL4\\Tester\\Files\\"+"Kurse.txt";

Handle = FileOpen(filename,FILE_WRITE|FILE_TXT);

   if(Handle < 0)

   {

      Print("Failed to open the file by the absolute path "); 

      Print("Error code ",GetLastError());

      PlaySound("Bzrrr.wav"); 

      ExpertRemove();

   }

Hier erhalte ich ständig den Fehler 5002. Ich weiss nicht was ich hier falsch mache.

Kann mir da möglicherweise jemand helfen?

 
Wenn du F1 drückst und nach 5002 suchst siehst du, daß mit dem Filename was nicht passt.
 
Otto Pauser:
Wenn du F1 drückst und nach 5002 suchst siehst du, daß mit dem Filename was nicht passt.

Vielen Dank. Das habe ich kontrolliert! Aber da stimmt meiner Meinung alles!


 
Drück mal bei FileOpen auf F1 und lies unter "Notes" die imho sinnlosen Restriktionen bei Dateinamen.
 
  1. Bei mir sind die Namen der MT4-Verzeichnisse kleingeschrieben: "..\tester\files".
  2. Außerdem liegt /tester/ nicht in MQL4!

Hast Du das einmal kontrolliert?

Wahrscheinlich wurde das etwas gedankenlos vom MT5 übernommen!

Sonst bleibt immer noch FILE_COMMON.

 
Carl Schreiber:
  1. Bei mir sind die Namen der MT4-Verzeichnisse kleingeschrieben: "..\tester\files".
  2. Außerdem liegt /tester/ nicht in MQL4!

Hast Du das einmal kontrolliert?

Wahrscheinlich wurde das etwas gedankenlos vom MT5 übernommen!

Sonst bleibt immer noch FILE_COMMON.

Danke für den Tipp! Das Flag FILE_COMMON brachte den Erfolg. Außerdem darf in der Variablen filename nicht der absolute Pfad definiert werden. In meinem Fall reichte:

filename="Kurse.txt";

Handle = FileOpen(filename,FILE_COMMON|FILE_WRITE|FILE_TXT);

Mit dem Flag FILE_COMMON wurde die Datei Kurse.txt automatisch im Pfad C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\Common\Files erstellt. Das Verzeichnis Files wurde vom Programm erstellt, da es nicht vorhanden war.

 
Jetzt kannst Du Dir noch einen Link auf den Desktop legen, um schwupps ins Common-Verzeichnis zu springen.
Grund der Beschwerde: