CSV File lässt sich nicht erstellen, was tun?

Einloggen oder registrieren, um einen Kommentar zu schreiben
Bayne
1009
Bayne  
File lässt sich nicht erstellen. Woran kann das liegen?

EDIT:

FileIsExist ()  sagt nein und der error liegt bei 5019. Das heißt das nichts erstellt wurde. Habe Filenamen, Flags und delimiter jetzt mehrfach variiert. und Metatrader & MQL Neugestartet. ich sehe keinen grund warum das file nicht erstellt werden kann, dennoch wird es nicht erstellt.


Code falls er irgendwem wichtig ist. (gehe aber mal davon aus dass FileOpen FileSeek FileWrite und FileClose ausreichen)

void WriteFile(string filename,int &Input_Types[], double &x_data[][63])
   { 
   FileHandle = FileOpen(filename,FILE_READ||FILE_WRITE||FILE_CSV,","); //hier nur die ersten {ArraySize(Input_Types+)+ 1 für Y} Zeilen importieren, der rest ist ausgenullt
   FileSeek(FileHandle,0,SEEK_END);

   int bars=iBars(my_symbol,my_timeframe);
   Print(" Bars: "+(string)bars+" Found");
   
   ArrayResize(x_data, bars);
            
   for(int i=bars-1;i>0;i--)
       {
       x_data[i][0] = iClose(my_symbol,my_timeframe,i); // hieraus wird später unser Y Label
       
       for (int j = 1; j<ArraySize(Input_Types)+1;j++)
            {
                  time=iTime(my_symbol,my_timeframe,i);
                 
            x_data[i][j]= Switch_Input_Types(Input_Types[j],i); // FeatureValue
            
                  //--- check
                  if(time!=0)
                    {
                     Comment("Bar Index: "+(string)i+
                             " Time: "+TimeToString(time)/*+
                             " Open: "+DoubleToString(open)+
                             " High: "+DoubleToString(high)+
                             " Low: "+DoubleToString(low)+
                             " Close: "+DoubleToString(close)*/);
                     Print ("Matrix finished");     
                     Sleep(25);
                    }
             }
         FileWrite(FileHandle,x_data[i][0],x_data[i][1],x_data[i][2],x_data[i][3],x_data[i][4],x_data[i][5],x_data[i][6],x_data[i][7],x_data[i][8],x_data[i][9],x_data[i][10],x_data[i][11],x_data[i][12],x_data[i][13],x_data[i][14],x_data[i][15],x_data[i][16],x_data[i][17],x_data[i][18],x_data[i][19],x_data[i][20],
                        x_data[i][21],x_data[i][22],x_data[i][23],x_data[i][24],x_data[i][25],x_data[i][26],x_data[i][27],x_data[i][28],x_data[i][29],x_data[i][30],x_data[i][31],x_data[i][32],x_data[i][33],x_data[i][34],x_data[i][35],x_data[i][36],x_data[i][37],x_data[i][38],x_data[i][39],x_data[i][40],
                        x_data[i][41],x_data[i][42],x_data[i][43],x_data[i][44],x_data[i][45],x_data[i][46],x_data[i][47],x_data[i][48],x_data[i][49],x_data[i][50],x_data[i][51],x_data[i][52],x_data[i][53],x_data[i][54],x_data[i][55],x_data[i][56],x_data[i][57],x_data[i][58],x_data[i][59],x_data[i][50],
                        x_data[i][61],x_data[i][62]);    
         }      
         FileClose(FileHandle);
         filewritten=true;
   } 
Christian
3192
Christian  
Bayne:

Besteht die möglichkeit das das File in diesem Fall erstellt wurde jedoch wo anders abgelegt wurde als im MQL5/Files Ordner oder muss ich meinen Code überdenken?



Installier dir :

https://voidtools.com/

Gib deinen Dateinamen

string filename

ein und es dauert keine 500ms und du bekommst den Pfad angezeigt.

Bayne
1009
Bayne  
Christian:

Installier dir :

https://voidtools.com/

Gib deinen Dateinamen

ein und es dauert keine 500ms und du bekommst den Pfad angezeigt.

Bekomme Leider 0 Einträge dafür.

Und außerdem bei FileOpen den FileHandle "INVALID_HANDLE"  sowie bei GetLastError() die 5002.

Der File soll durch das FileOpen erstellt werden. muss ich irgendwas hinzufügen? vllt den Pfad "MetaQuotes\Terminal\67381DD86A2959850232C0BA725E5966\MQL5\Files" ?

Christian
3192
Christian  
Bayne:

Bekomme Leider 0 Einträge dafür.


Dann gibt es das File auch nicht.

Du hast doch so gesucht

filename*

?

Wollte nur fürs suchen helfen.

Carl Schreiber
Moderator
9901
Carl Schreiber  
Also ich würde mal als erstes überprüfen, ob das File erstellt wurde und es keine Fehler gab - das fehlt bei Dir!
Bayne
1009
Bayne  
Carl Schreiber:
Also ich würde mal als erstes überprüfen, ob das File erstellt wurde und es keine Fehler gab - das fehlt bei Dir!
FileIsExist ()  sagt nein und der error liegt mittlerweile bei 5019. Das heiß das nichts erstellt wurde. habe Filenamen, Flags und delimiter jetzt mehrfach variiert. und Metatrader & MQL Neugestartet. ich sehe keinen grund warum das file nicht erstellt werden kann, dennoch wird es nicht erstellt.
Carl Schreiber
Moderator
9901
Carl Schreiber  

Wie ist der Filename? Manche (Sonder-) Zeichen werden nicht akzeptiert!

Übrigens wieder etwas, das Dir der Debugger auch erzählt hätte!

Bayne
1009
Bayne  
Carl Schreiber:

Wie ist der Filename? Manche (Sonder-) Zeichen werden nicht akzeptiert!

Übrigens wieder etwas, das Dir der Debugger auch erzählt hätte!

string filename = "12345.csv";

Gibt es keine andere möglichkeit ein csv durch befehl zu erschaffen? (statt FileOpen scheint irgendwas zu fehlen)

habe den gleichen code wie oben nochmal in einen komplett neuen EA gepflanzt: selbes ergebnis. Langsam glaube ich dass etwas mit meiner Metatraderversion nicht stimmen könnte.(Verion 5.00 build2085)

EDIT: Selbes ergebnis bei MT5 von anderem Broker

Carl Schreiber
Moderator
9901
Carl Schreiber  

Versuch's mal mit der korrekten Angabe des Delimiters (Trennzeichens): nicht "," sondern ','

Lies genau was in der Doc. steht: https://www.mql5.com/de/docs/files/fileopen

Dokumentation zu MQL5: Dateioperationen / FileOpen
Dokumentation zu MQL5: Dateioperationen / FileOpen
  • www.mql5.com
[in]  Name der geöffneten Datei, kann Unterordner haben. Wenn die Datei für Schreiben geöffnet wird, werden die angegebenen Unterordner erzeugt werden, wenn sie es nicht gibt. FILE_CSV Date des Typs csv (alle geschriebenen Elemente werden in die Zeilen des entsprechenden Typs umgewandelt, unicode oder ansi, und durch Begrenzer getrennt)  ...
lippmaje
1190
lippmaje  

Also hier:

FILE_READ||FILE_WRITE||FILE_CSV

Das ist ein 'logisches' Oder. Guck mal in die Doku zu FileOpen, ganz unten auf der Seite steht, wie es gemacht werden soll:

FILE_READ|FILE_WRITE|FILE_CSV
Was benötigt wird ist ein bitweises Oder. Vielleicht kommst Du so an die Datei, den Rest hab ich nicht gelesen, richtiger ist es auf jeden Fall.
Bayne
1009
Bayne  
lippmaje:

Also hier:

Das ist ein 'logisches' Oder. Guck mal in die Doku zu FileOpen, ganz unten auf der Seite steht, wie es gemacht werden soll:

Was benötigt wird ist ein bitweises Oder. Vielleicht kommst Du so an die Datei, den Rest hab ich nicht gelesen, richtiger ist es auf jeden Fall.
Danke, das invalid handle ist jetzt endlich weg :)

Kann das File dennoch nicht (nichtmal mit dem Tool everything) finden. 
Sobald ich am Sonntag wieder an den Code kann werde ich auch deinen Vorschlag umsetzen @carl Schreiber

Danke euch beiden
Einloggen oder registrieren, um einen Kommentar zu schreiben