FileReadString

Liest aus der Datei die Zeile von der laufenden Position des Dateianzeigers.

string  FileReadString(
   int  file_handle,     // Datei-Handle
   int  length=-1        // Zeilenlänge
   );

Parameter

file_handle

[in]  Dateiattribut, das durch die Funktion FileOpen() zurückgegeben wird.

length=-1

[in]  Anzahl der Symbole für Lesen.

Rückgabewert

Gelesene Zeile(string).

Hinweis

Beim Lesen aus der bin-Datei ist es notwendig, die Länge der gelesenen Zeile anzugeben. Beim Lesen aus der txt-Datei braucht man nicht, die Zeilenlänge zu spezifizieren, die Zeile wird von der laufenden Position bis zum Zeilenvorschubszeichen "\r\n gelesen". Beim Lesen aus der csv-Datei braucht man auch nicht die Zeilenlänge anzugeben, die Zeile wird von der laufenden Position bis zum nächsten Begrenzer oder bis zum Endezeichen der Textzeile.

Wenn die Datei mit Flagge FILE_ANSI geöffnet wird, wird die gelesene Zeile in Unicode umgewandelt.

Beispiel (die Datei wird verwendet, die infolge der Arbeit des Beispiels für die Funktion FileWriteInteger bekommen ist)

//--- Beim Starten des Scripts zeigen Sie den Fenster mit den Eingabeparametern an 
#property script_show_inputs
//--- Parameter zum Lesen von Daten
input string InpFileName="Trend.bin"// der Dateiname
input string InpDirectoryName="Data"// der Verzeichnisname
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- öffnen Sie die Datei
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("%s Datei ist zum Lesen geöffnet",InpFileName);
      PrintFormat("Pfad zur Datei: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- Hilfsvariablen
      int    str_size;
      string str;
      //--- lesen Sie die Dateidaten
      while(!FileIsEnding(file_handle))
        {
         //--- erkennen Sie wieviele Symbole dienen für Zeiterfassung
         str_size=FileReadInteger(file_handle,INT_VALUE);
         //--- lesen Sie die Zeile
         str=FileReadString(file_handle,str_size);
         //--- drucken Sie die Zeile
         PrintFormat(str);
        }
      //--- schließen Sie die Datei
      FileClose(file_handle);
      PrintFormat("Die Daten sind gelesen, die Datei %s geschlossen",InpFileName);
     }
   else
      PrintFormat("Fehler beim Öffnen der Datei %s, Fehlercode = %d",InpFileName,GetLastError());
  }

Sehen Sie auch

Typ string, Datenverarbeitung, FileWriteInteger