Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 25.06.20
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Raul0 Beitrag anzeigen
Hallo,

ich möchte eine CSV Datei auslesen. Leider erhalte ich nicht die richtigen Werte in der gewünschten Reihenfolge.
Die gewünschte Reihenfolge lautet:
OrderTicket, OrderSymbol, OrderType, OrderLots, OrderOpenPrice, OrderStopLoss, OrderTakeProfit.

Empfangen per Printausgabe im MT4: 0 358864481 0 0.0 2.0 0.01 1.10108

In der CSV Datei steht es richtig: 358864481,EURUSD,2,0.01,1.10108,0,0

Der Fehler tritt auf, wenn ich verschiedene Variablen aufrufe, lasse ich alles auf double, dann stimmt die Reihenfolge. Was mache ich an der Stelle falsch?l
Meine Auslese Funktion sieht z.B. so aus (den Kommentar lasse ich immer drin, damit ich dran denke, die Art zu berücksichtigen):
Code:
   int handle=FileOpen(ConfigCVS, FILE_CSV|FILE_READ,Delim);
   if(handle>0)
   {
      /* Examples how to write and read the values
         1. Variabel = true||false 
         => write: BoolToInteger(Variable)
         => saved: as 1||0
         => read : StrToInteger(FileReadString(handle)); 
         2. Variable = "13:00"
         => write: Variable
         => saved: as 13:00
         => read : FileReadString(handle);
         3. Variable = "Arial"
         => write: Variable
         => saved: as Arial
         => read : FileReadString(handle);
         =============== colors
         BEST: always convert colors to uint type, as we don't know what user inputs
         x. Variable = clrColor
            Variable = C'128,128,128'
         => convert: ColorToARGB(Variable,255); //TableChoiceHasNoAlpha
         => write: ColorToARGB(Variable,255);
         => write: ColorToString(Variable);
         => saved: as 128,128,128
         => read : (color)StringToColor(FileReadString(handle));
      */
      MAGIC             = StrToInteger(FileReadString(handle));
      ASDSHOWSIG        = (bool)StrToInteger(FileReadString(handle));
      LOOKBACKBARS      = StrToInteger(FileReadString(handle));
      ASDMAPRICE        = (ENUM_APPLIED_PRICE)StrToInteger(FileReadString(handle));
      ASDMAKIND         = (ENUM_MA_METHOD)StrToInteger(FileReadString(handle));
      ASDPOS            = (ENUM_BASE_CORNER)StrToInteger(FileReadString(handle));
      ASDCOLORLONG      = (color)StringToColor(FileReadString(handle));
      ASDCOLORSHORT     = (color)StringToColor(FileReadString(handle));
      ASDCOLOREXIT      = (color)StringToColor(FileReadString(handle));

      if(FileIsEnding(handle)==true) FileClose(handle);
   }
BoolToInteger is ne Minifunktion, die eine Benutzereingabe =true||false umwandelt.

Versuch es also mal bei jedem Wert, der nicht Double ist, die Art voranzustellen. AVT