Русский

Справочник MQL4 Файловые операции FileReadString

Справка MQL4 одним файлом:

FileReadString

Читает из файла строку с текущего положения файлового указателя.

string  FileReadString(
   int  file_handle,     // handle файла
   int  length=0         // длина строки
   );

Параметры

file_handle

[in]  Файловый описатель, возвращаемый функцией FileOpen().

length=0

[in]  Количество символов для чтения.

Возвращаемое значение

Прочитанная строка(string).

Примечание

При чтении из bin-файла обязательно указывать длину читаемой строки. При чтении из txt-файла длину строки указывать не надо, будет прочитана строка от текущего положения до признака перевода строки "\r\n". При чтении из csv-файла длину строки также указывать не надо, будет прочитана строка от текущего положения до ближайшего разделителя либо до признака конца текстовой строки.

Если файл открыт с флагом FILE_ANSI, то прочитанная строка преобразовывается в Unicode.

Пример (используется файл, полученный в результате работы примера для функции FileWriteInteger())

//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- параметры для чтения данных
input string InpFileName="Trend.bin"// имя файла
input string InpDirectoryName="Data"// имя директории
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- откроем файл
   ResetLastError();
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_BIN|FILE_ANSI);
   if(file_handle!=INVALID_HANDLE)
     {
      PrintFormat("Файл %s открыт для чтения",InpFileName);
      PrintFormat("Путь к файлу: %s\\Files\\",TerminalInfoString(TERMINAL_DATA_PATH));
      //--- вспомогательные переменные
      int    str_size;
      string str;
      //--- прочитаем данные из файла
      while(!FileIsEnding(file_handle))
        {
         //--- узнаем сколько символов использовано для записи времени
         str_size=FileReadInteger(file_handle,INT_VALUE);
         //--- прочитаем строку
         str=FileReadString(file_handle,str_size);
         //--- распечатаем строку
         PrintFormat(str);
        }
      //--- закроем файл
      FileClose(file_handle);
      PrintFormat("Данные прочитаны, файл %s закрыт",InpFileName);
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",InpFileName,GetLastError());
  }

Смотри также

Тип string, Преобразование данных, FileWriteInteger()