Добрый день, ребят прошу помочь:
имеется строчка, в которой name, это название OBJ_RECTANGLE_LABEL, например: PKZON_2022.03.15 00:00:00_L_344
Мне с имени нужно вырезать вот эту часть: (например: _L_344, дабы получилось PKZON_2022.03.15 00:00:00)
как получить что-то типо такого?
Спасибо, за потраченное время
если имя типа
_L_344
то с вероятностью 99.99% у вас в руках старинный декомпил, и стоит бросить бяку
Добрый день, ребят прошу помочь:
имеется строчка, в которой name, это название OBJ_RECTANGLE_LABEL, например: PKZON_2022.03.15 00:00:00_L_344
Мне с имени нужно вырезать вот эту часть: (например: _L_344, дабы получилось PKZON_2022.03.15 00:00:00)
Если длина строки типа _L_344 постоянная (6 символов), то вообще просто:
StringSubstr(name, 0, StringLen(name) - 6);
Если же длина изначально неизвестна, то придется определить ее. Для этого придется распарсить исходную строку, чтобы выделить ту часть, которую необходимо удалить.
Парсер можно написать свой (если нет постоянного символа-разделителя), а можно использовать StringSplit, если символ-разделитель в строке является постоянным.
Если длина строки типа _L_344 постоянная (6 символов), то вообще просто:
Если же длина изначально неизвестна, то придется определить ее. Для этого придется распарсить исходную строку, чтобы выделить ту часть, которую необходимо удалить.
Парсер можно написать свой (если нет постоянного символа-разделителя), а можно использовать StringSplit, если символ-разделитель в строке является постоянным.
Спасибо за ответ, а если меняется значение, как быть?
Пожалуйста подскажите что можно сделать еще?
Ну если вы учитесь, то прочтите эту страницу и вы поймёте больше, чем вам объяснят все вместе на 3-4 форумах.
Ну, а если ничего не поймёте, то «не царское это дело…»
- www.mql5.com
В смысле не значение меняется, а длина? Для такого случая нужно знать, что именно искать. То есть должен быть какой-то признак, по которому можно определить, что от исходной строки следует отделить какую-то часть. Обычно это обыгрывается разделителями типа символов "_", ";", " " (пробел). Если такого нет, то тогда в принципе непонятно, что же следует искать.
ребят спасибо всем за ответы, как можно обгрызть до 2-го разделителя, ну или до 1-го:
Окончание может быть: _L_* либо _H_* (за место звездочки может быть любые цифры)
Ребят я прошу прощения, я наверное даже не могу правильно изложить сути вопроса, раз столько случаев может быть
string name = "PKZON_2022.03.15 00:00:00_L_344"; name = name.Substr(0, name.Find("_", 6)); Print(name);
ребят спасибо всем за ответы, как можно обгрызть до 2-го разделителя, ну или до 1-го:
Окончание может быть: _L_* либо _H_* (за место звездочки может быть любые цифры)
Если искомая подстрока всегда расположена в конце исходной строки, то так:
string sName = "PKZON_2022.03.15 00:00:00_H_344"; int nPos = StringFind(sName, "_L_"); if (nPos < 0) nPos = StringFind(sName, "_H_"); string sNewString = sName; if (nPos >= 0) sNewString = StringSubstr(sName, nPos); Print(sNewString); // _H_344
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, ребят прошу помочь:
имеется строчка, в которой name, это название OBJ_RECTANGLE_LABEL, например: PKZON_2022.03.15 00:00:00_L_344
Мне с имени нужно вырезать вот эту часть: (например: _L_344, дабы получилось PKZON_2022.03.15 00:00:00)
как получить что-то типо такого?
Спасибо, за потраченное время