Skript zum schreiben von CSV Dateien mit mehreren Spalten

 
Hallo zusammen:),

ich möchte wie bereits erwähnt eine CSV datei mit mehreren Spalten via Sript speichern.

Ich habe ein 2-dimensionales Array vorliegen. Würde es funktionieren, ein 2D-Array mit zwei Spalten als CSV zu speichern?

andernfalls könnte ich villeicht eine Array Struct nehmen. So wie hier:



struct test
  {
   int               zero;
   int               one;
   double            two;
  };
test guy;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   handle = 0;
//---
   handle = FileOpen("teest.csv", FILE_CSV | FILE_WRITE);
//---
   for(int i = 1; i <= 10; i++)
     {
     // size = ArraySize(guy.one);
      //ArrayResize(guy.one, size + 1);
      //ArrayResize(guy.two, size + 1);
      guy.zero = i;
      guy.one = i * i;
      guy.two = i * i * i;
      //---
      Print(guy.zero + " " + guy.one + " " + guy.two);
     }
//---
   FileWriteStruct(handle, guy);
   FileClose(handle);
  }

Aber irgendwie speichert der da hyroglyphen ab:



Könnt ihr mir da helfen?

Lieben Dank euch :)

 

Ich schreibe csv-Dateien zeilenweise und nicht als csv:

//use:  addLineToFileCommon("line\n", "folder\\name.txt"); // shared=true, maxPrt=10
bool addLineToFileCommon(const string line, const string fName, const bool shared = true, const int maxPrt=10) {
   ResetLastError();
   static int nErr=0;
   int fH;
   if ( shared )
      fH = FileOpen(fName,FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON|FILE_SHARE_READ|FILE_SHARE_WRITE);
   else 
      fH = FileOpen(fName,FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON);
   if (fH == INVALID_HANDLE ) { if (nErr<maxPrt) Print("Common-File: >"+fName+"< Open FAILED err:",_LastError); return(false); }
   FileSeek(fH,0,SEEK_END);
   FileWriteString(fH, line, StringLen(line) );
   FileClose(fH);
   if (_LastError<2) return(true);
   if (nErr<maxPrt) ErrT("Write to Common-file: "+fName+" went wrong?");
   return(false);
}

mit: line = (string)itm1+";"+(string)itm2+ ...+"\n";

Die hyroglyphen hängen mit der Textcodierung (Ansi, UTF-8, UTF-16, ... zusammen) - hab's nie ganz verstanden, immer durch probieren (zB. FILE_BIN) gelöst.
 
danke Carl, das war sehr hilfreich!