Русский

Справочник MQL4 Основы языка Типы данных Тип string

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

Тип string

Тип string предназначен для хранения текстовых строк. Текстовая строка представляет собой последовательность символов в формате Unicode с завершающим нулем на конце. string-переменной может быть назначена строковая константа. Строковая константа представляет собой последовательность символов Unicode, заключенную в двойные кавычки: "Это строковая константа".

Если необходимо ввести в строку двойную кавычку ("), то перед ней надо поставить символ обратной косой черты (\). В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ обратной косой черты (\).

Примеры:

string svar="This is a character string";
string svar2=StringSubstr(svar,0,4);
Print("Символ копирайта\t\x00A9");
FileWrite(handle,"эта строка содержит символ перевода строки \n");
string MT4path="C:\\Program Files\\MetaTrader 4";

Длинные константные строки для удобства чтения исходного кода можно разбивать на части без операции сложения. Эти части при компиляции автоматически соберутся в одну длинную строку:

//--- объявим длинную константную строку
   string HTML_head="<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
                    " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
                    "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
                    "<head>\n"
                    "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n"
                    "<title>Trade Operations Report</title>\n"
                    "</head>";
//--- выведем в журнал константную строку
   Print(HTML_head);
  }

Внутреннее представление строки - структура размером 12 байт:

#pragma pack(push,1)
struct MqlString
  {
   int      size;       // 32-битное целое, содержит размер распределенного для строки буфера
   LPWSTR   buffer;     // 32-разрядный адрес буфера, содержащего строку
   int      reserved;   // 32-битное целое, зарезервировано, не использовать
  };
#pragma pack(pop,1)

Смотри также

Преобразование данных, Строковые функции, FileOpen(), FileReadString(), FileWriteString()