Funkcje operujące na zmiennych tekstowych

Zmienne łańcuchowe, tekstowe reprezentowane są w MQL przez format string. Zmienne typu string są tak zwanymi typami dynamicznymi, co oznacza, że są zmiennej wielkości, dosłownie długości ciągu znaków, dlatego też w MQL4 wprowadzono funkcje wspierające posługiwanie się tym typem danych.
Dodatkowo należy zaznaczyć i pamiętać, że typ dynamiczny zabiera więcej mocy obliczeniowej i jest wolniejszy w operowaniu nim niż podstawowe typy danych.
 

StringConcatenate

Funkcja łączy stringi, które są przekazane jako parametry wywołania funkcji i w wyniku zwraca jeden string. Maksymalna ilość przekazywanych parametrów do funkcji nie może przekroczyć 64. Podobnie jak funkcja StringConcatente działają funkcje Print(), Alert(), Comment(). Zalecane jest stosowanie tej funkcji ponieważ jest ona znacznie szybsza niż łączenie tekstu z wykorzystaniem sumowania (+).

Składnia:

string StringConcatenate(str1,str2,str3,...,strn)
Parametry
str1,str2,str3,...,strn – ciągi znaków typu string, nie więcej niż 64 ciągi
Wartość zwracana
pojedynczy strong z tych przekazywanych jako parametry

Przykład:

string text;
text=StringConcatenate("Wolne środki ", AccountFreeMargin(), "Aktualny
czas ", TimeToStr(TimeCurrent()));
// to samo tylko wykonywane znacznie wolniej text="Wolne środki ",
AccountFreeMargin(), "Aktualny czas ", TimeToStr(TimeCurrent())
Print(text);

StringFind

Funkcja szuka podciągu zwraca pozycję pierwszego elementu w podciągu lub -1 jeśli nie znajdzie.

Składnia:

int StringFind( string text, string matched_text, int start=0 )
Parametry
text – przeszukiwany ciąg
matched_text – podciąg, który ma być wyszukany
start – pozycja w przeszukiwanym ciągu od której ma zostać szukany podciąg
Wartość zwracana
indeks wskazujący na pierwszą pozycję podciągu

Przykład:

string text="Programowanie w MQL4 jest bardzo łatwe";
int index=StringFind(text, "jest bardzo", 0);
Print("Indeks początku podciągu =",index);

StringGetChar

Funkcja zwraca kod ASCII znaku ze stringu określonego za pomocą indeksu pozycji w stringa.

Składnia:

int StringGetChar( string text, int pos )
Parametry
text – ciąg znaków
pos – pozycja w stringu musi być po między 0, a StringLen(text)-1.
Wartość zwracana
kod ASCII znaku

Przykład:

int char_code = StringGetChar("abcdefgh", 3);
// kod znaku 'c' to 99

StringLen

Funkcja zwraca długość ciągu znaków.

Składnia:

int StringLen( string text )
Parametry
text – tekst, którego długość będzie wyznaczona
Wartość zwracana
długość ciągu znaków

Przykład:

string str="jakiś tekst";
if(StringLen(str)<5) return(0);

StringSetChar

Funkcja zwraca kopię ciągu znaków w którym zmieniona została pozycja znaku określonego indeksem i nowym kodem znaku w postaci ASCII.

Składnia:

string StringSetChar( string text, int pos, int value )
Parametry
text – string w którym zostanie zmieniony znak
pos – indeks pozycji znaku do zmiany
value – kod znaku w ASCII
Wartość zwracana
string ze zmienionym znakiem

Przykład:

string str1="abcdefgh";
string str1=StringSetChar(str, 3, 'D');
// nowa wartość zmiennej str1 to "abcDefgh"

StringSubstr

Funkcja zwraca podciąg z ciągu tekstowego, zaczynając od określonej pozycji oraz zwraca określoną iilość znaków.

Składnia:

string StringSubstr( string text, int start, int length=0 )
Parametry
text – ciąg znaków z którego będzie pobierany podciąg
start – indeks początku podciągu, może być od 0 do StringLen(text)-1.
length – długość ciągu, która będzie odczytana. Jeśli pozostawimy domyślną
wartość length równą 0 to zostanie odczytany ciąg od aktualnej pozycji
określonej przez start do końca stringu.
Wartość zwracana
odczytany podciąg

Przykład:

string text="Programowanie w MQL4 jest bardzo łatwe";
string substr=StringSubstr(text, 16, 4);
// podciąg to "MQL4"

StringTrimLeft

Funkcja zwraca kopię łańcucha znaków z usuniętymi z lewej strony znakami pustymi (spacje, znaki końca linii), jeśli wykonała się prawidłowo lub pusty ciąg znaków, jeśli błąd.

Składnia:

string StringTrimLeft( string text )
Parametry
text – tekst z którego będą usunięte puste znaki z lewej
Wartość zwracana
ciąg z usuniętymi znakami pustymi z lewej

Przykład:

string str1=" Witaj świecie ";
string str2=StringTrimLeft(str);
// w wyniku otrzymamy string "Witaj świecie "

StringTrimRight

Funkcja zwraca kopię łańcucha znaków z usuniętymi z prawej strony znakami pustymi (spacje, znaki końca linii), jeśli wykonała się prawidłowo lub pusty ciąg znaków, jeśli błąd

Składnia:

string StringTrimRight( string text )
Parametry
text - tekst z którego będą usunięte puste znaki z prawej
Wartość zwracana
ciąg z usuniętymi znakami pustymi z prawej

Przykład:

string str1=" Witaj świecie ";
string str2=StringTrimLeft(str);
// w wyniku otrzymamy string " Witaj świecie"

Niniejszy materiał, przygotowany przez DM BOŚ S.A. ma charakter wyłącznie informacyjny, prezentowany jest w celach edukacyjnych i nie stanowi porady prawnej oraz nie jest rekomendacją osobistą w ramach świadczenia usługi doradztwa inwestycyjnego zgodnie z przepisami prawa. DM BOŚ S.A. nie udziela gwarancji dokładności, aktualności, oraz kompletności niniejszych informacji. Zaleca się przeprowadzenie we własnym zakresie niezależnego przeglądu informacji z niniejszego materiału.

1/1