Руководство пользователя
Работа со строками
NetTradeX PC
NetTradeX Android
NetTradeX iOS
NetTradeX Mobile
NetTradeX Advisors
-
Руководство по NTTX Advisors
- Терминал NetTradeX Advisors
-
Статьи
-
NetTradeX Language: Введение
- Основы языка
- Функции языка
-
Cистемные объекты языка
- Сделки
- Ордера
- Индикаторы
- Объектно-ориентированное программирование
-
DLL файлы
-
Объект Account
-
Объект Bars
-
Объект Chart
-
Объект datetime
-
Объект History
-
Объект file
-
Объект Globals
-
Объект Math
-
Объект Symbols
-
Объект System
Работа со строками
Операторы для работы со строками
| Операция | Описание |
|---|---|
| = | Присваивание строки |
| + | Конкатенация строк |
| == | Проверка строк на равенство |
| != | Проверка строк на неравенство |
| <, >, <=, >= | Операции сравнения строк |
| [] | Доступ к элементам строки по индексу |
Пример. Выведем все символы строки.
int Initialize()
{
return(0);
}
int Run()
{
string a = "NetTradeX";
for (uint i=0;i<a.length;i++)
{
System.Print(""+int8(a[i]));
}
return(0);
}
int DeInitialize()
{
return(0);
}
Методы работы со строками
| Метод | Описание |
|---|---|
| uint length() const | Получение длины строки |
| void resize(uint) | Изменение длины строки |
| bool isEmpty() const | Проверка того, что строка пустая |
| string substr(uint start = 0, int count = -1) const; |
Выделение подстроки, начиная с позиции start и длиной count символов.
|
| int findFirst(const string &in str, uint start = 0) const; |
Поиск первого вхождения подстроки str, начиная с позиции start.
|
| int findLast(const string &in str, int start = -1) const; |
Поиск последнего вхождения подстроки str не далее, чем start символов от начала.
|
|
array |
Разбиение строки на подстроки, которые записываются в массив. |
Пример работы с методами строки:
int Initialize()
{
return(0);
}
int Run()
{
string a = "Hello, NetTradex Advisor!";
System.Print("Substring = "+a.substr(3,10)); // Выведется Substring = lo, NetTra
System.Print("Find substring \"tT\" pos = "+a.findFirst("tT",1)); // Выведется Find substring "tT" pos = 9
System.Print("Find last = "+a.findLast("o",6)); // Выведется Find last = 4
array<string>words = a.split(" ");
for(uint i=0;i<words.length();i++)
{
System.Print(words[i]);
}
System.Print("Joined="+join(words," "));
return 0;
}
int DeInitialize()
{
return(0);
}
Функции для работы со строками
| Название функции | Описание |
|---|---|
|
string join(const array |
Соединение элементов массива arr с добавлением между элементами символов, указанных в delimiter.
|
| int64 parseInt(const string &in, uint base = 10, uint &out byteCount = 0) | Преобразование строки к типу int64 |
| double parseFloat(const string &in, uint &out byteCount = 0) | Преобразование строки к типу double |
| string formatInt(int64 val, const string &in options, uint width = 0) | Преобразование числа int64 в строку с использованием указанного формата*. |
| string formatFloat(double val, const string &in options, uint width = 0, uint precision = 0) | Преобразование числа double в строку с использованием указанного формата*. |
* Флаги для указания формата строки
- l - выравнивание по левому краю
- 0 - дополнить слева нулями
- + - добавить + для положительных чисел
- пробел - добавить слева пробел для положительных чисел
- h - использовать строчные буквы при выводе в шестнадцатеричном формате
- H - использовать прописные буквы при выводе в шестнадцатеричном формате
- e - использовать строчный символ "e" для экспоненты
- E - использовать прописной символ "E" для экспоненты
Пример 1. Демонстрация использования функций formatInt и formatFloat:
int Initialize()
{
return(0);
}
int Run()
{
System.Print(""+formatInt(1245,"0+", 10)); // выведется +000001245
System.Print(""+formatInt(0xAbCd,"lH", 10)); // выведется ABCD
System.Print(""+formatFloat(1234567,"E",10,4)); // 1.2346E+006
return(0);
}
int DeInitialize()
{
return(0);
}
Пример 2. Преобразуем строку в число:
int Initialize()
{
return(0);
}
int Run()
{
uint a;
System.Print(""+parseInt("12345678",10,a));
System.Print("a="+a);
return(0);
}
int DeInitialize()
{
return(0);
}