Тип 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 MT5path="C:\\Program Files\\MetaTrader 5";

 

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

//--- объявим длинную константную строку
   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);
  }

Встроенные методы типа string

Для работы со строками можно использовать строковые функции, функции конвертации и встроенные методы типа string, которые приведены в таблице:

Метод string

Аналог

Описание

Конструктор string(const int len)

 

Конструирует строку указанной длины

string[] как для чтения, так и для записи. Индекс должен быть в пределах BufferSize()

 

Обеспечивает доступ к элементу строки по указанному индексу

static string string.Init(const int len, const ushort character);

StringInit

Инициализирует строку указанными символами с указанным размером

void string.Fill(const ushort character);

StringFill

Заполняет строку указанным символом

int string.Len();

StringLen

Возвращает число символов в строке

int string.BufferSize();

StringBufferLen

Возвращает размер буфера, распределенного для строки

bool string.SetLen(const int new_len);

StringSetLength

Устанавливает для  строки указанную длину в символах

bool string.Reserve(const int buffer_len);

StringReserve

Резервирует в памяти для строки буфер указанного размера

bool string.Add(const string substring);

StringAdd

Присоединяет указанную подстроку с конца

int string.Concatenate(const scalar val1, const scalar val2...);

StringConcatenate

Формирует строку из переданных параметров

array string.Split(const ushort separator, const bool long_separator);

StringSplit

Вовращает массив строк по заданному разделителю

int string.Compare(const string str, const bool case_sensivity);

StringCompare

Сравнивает с указанной строкой и возвращает 1, если первая строка больше второй; 0 - если строки равны; -1 (минус один) - если первая строка меньше второй

string string.Substr(const int start_pos, const int len);

StringSubstr

Извлекает подстроку c указанной позиции

int string.Find(const string substr, const int pos);

StringFind

Возвращает номер позиции, с которой начинается искомая подстрока

void string.ToLower();

StringToLower

Преобразует все символы в строчные (маленькие)

void string.ToUpper();

StringToUpper

Преобразует все символы в прописные (большие)

int string.TrimLeft();

StringTrimLeft

Удаляет символы перевода каретки, пробелы и символы табуляции слева

int string.TrimRight()

StringTrimRight

Удаляет символы перевода каретки, пробелы и символы табуляции справа

void string.Double(const double var, const int digits=8);

DoubleToString

Преобразует строку в число типа double

void string.Enum(const enum value);

EnumToString

Преобразование значения перечисления любого типа в строку

void string.Integer(const int value, const int str_len=0, const ushort fill=' ');

IntegerToString

Преобразует строку в число типа long

void string.CharArray(const uchar array[], const int start_pos=0, const int len=-1, const uint cp=CP_ACP);

CharArrayToString

Преобразует часть массива типа uchar в строку

void string.ShortArray(const ushort array[], const int start_pos=0, const int len=-1);

ShortArrayToString

Копирует часть массива типа ushort в строку

void string.Time(const datetime dt,const int mode=TIME_DATE|TIME_MINUTES);

 TimeToString

Преобразование значение datetime в строку формата "yyyy.mm.dd hh:mi".

void string.Format(const string format_str);

StringFormat

Форматирует полученные параметры в строку

Смотри также

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