Изменение в строке

 

Всем привет.

Может кто подсказать как заменить символы в строке ?

Есть строка:

txt1=aaaa,txt2=bbbb,txt3=cccc,txt4=dddd,txt5=eeee

её нужно преобразовать к виду:

aaaa,bbbb,cccc,dddd,eeee

как это можно сделать средствами mql4 ?

Спасибо.

 
Kirbik:

Всем привет.

Может кто подсказать как заменить символы в строке ?

Есть строка:

её нужно преобразовать к виду:

как это можно сделать средствами mql4 ?

Спасибо.

   Так
   StringConcatenate(txt1, txt1, ",", txt2, ",", txt3, ",", txt4, ",", txt5);
   или так
   txt1 = StringFormat("s%,s%,s%,s%,s%", txt1, txt2, txt3, txt4, txt5);
   или так
   txt1 = txt1 + "," + txt2 + "," + txt3 + "," + txt4 + "," + txt5;
 

Спасибо. Но я как-то представлял себе такой алгоритм - есть строка, данные берутся по шаблону: после = и до запятой или конца строки.

Ну и плюс между запятыми может быть и не 5 подстро, а 500.

 
Kirbik #:
Спасибо. Но я как-то представлял себе такой алгоритм - есть строка, данные берутся по шаблону: после = и до запятой или конца строки.

Какой вопрос, такой ответ.

А вот это вот - " есть строка, данные берутся по шаблону: после = и до запятой или конца строки."

Вообще не понял)

 

Имелось ввиду что:

начиная с первого символа начальной строки идет сравнение посимвольно, если предыдущий символ "=" и теущий не "," то текущий символ записывается в новую строку и так до того момента пока текущий символ не станет "," или конец строки.

 
Kirbik #:

Спасибо. Но я как-то представлял себе такой алгоритм - есть строка, данные берутся по шаблону: после = и до запятой или конца строки.

Ну и плюс между запятыми может быть и не 5 подстро, а 500.

Если там строка, то соизвольте заключить её в кавычки, чтобы не возникало ни у кого вопросов.

Типа так

"txt1=aaaa,txt2=bbbb,txt3=cccc,txt4=dddd,txt5=eeee"

А дальше читайте документацию. Раздел «Строковые функции». Там много интересного и полезного написано. И поиск символа в строке, и извлечение подстроки с указанной позиции…

 

синтаксический анализ и разбор строк на MQL это боль и страдания :-) Через это надо пройти

самое простое - разбить через StringSplit по , потом каждую подстроку так-же по = , далее сложить части через ','

вариант - просто конечный автомат откусывающй все от , до = 

---

правильное решение - отдавать в MQL данные в том виде каком он может это понимать. максимум - CSV. (на край JSON, существуют более-менее рабочие библиотеки)

 
Alexey Viktorov #:

Если там строка, то соизвольте заключить её в кавычки, чтобы не возникало ни у кого вопросов.

Типа так

А дальше читайте документацию. Раздел «Строковые функции». Там много интересного и полезного написано. И поиск символа в строке, и извлечение подстроки с указанной позиции…Так

Так я и написал - "есть строка". А по поводу "читайте документацию" - описание встроенных функций предельно скудное - это из разряда - "есть вопрос о юр моменте - "ну так вот вам кодекс и там ищите"",,

За от ответы и направление всем спасибо).

 
Kirbik:

Всем привет.

Может кто подсказать как заменить символы в строке ?

Есть строка:

её нужно преобразовать к виду:

как это можно сделать средствами mql4 ?

Спасибо.

Всё, что до знака равенства и сам знак равенства отбросить, взять только запятую, и символы до следующей запятой + саму запятую. Цикл повторять до конца строки.

 
Kirbik #:

Так я и написал - "есть строка". А по поводу "читайте документацию" - описание встроенных функций предельно скудное - это из разряда - "есть вопрос о юр моменте - "ну так вот вам кодекс и там ищите"",,

За от ответы и направление всем спасибо).

Ну если вы в уголовном кодексе начнёте искать статьи о расторжении брака, то вам в палату №6. Я вам сказал в каком разделе читать и даже написал примерное описание нужных функций.

Если-бы вы написали типа «сделайте за меня, я в этом совсем никакой…» я прошёл-бы мимо молча. А так, хотел помочь разобраться самостоятельно. Описание функций в документации вполне нормальное, если читать со скоростью меньше чем читаете детективы… и можно по несколько раз одну фразу пока не дойдёт написанное.

Я всё это говорю как-бы про себя, я именно так и читаю… вот уже примерно тринадцать лет. 

 
Есть функция StringSplit(). Сначала разбить по запятой, потому каждый элемент по знаку равенства.
Причина обращения: