Попытался я сделать глобальную замену в тексте str на s_str. Вызвал окошко - ввел тексты - нажал кнопочку "заменить все" .... Metaedit-ор ушел в глухой цикл: на экране все дергается и никак замена не закончится. Убил его и сделал тоже самое ручками пошагово. Вот что получается: первые два вхождения найдены и заменены правильно а вот на третьем происходит какоето смещение и текст не заменяется :(
после него находится четвертое вхождение и тоже заменяется нормально, но после этого находится незамененное третье (уже с другим смещением), снова не заменяется но снова находится - и тут бесконечный цикл.
Вот (демо)код на котором это происходит:
220 - Build
Это глюк редактора. Он сначала пытается заменить str на s_str, потом находит s_str и пытается заменить ее на s_s_str, потом на s_s_s_str и т.д.
Это глюк редактора. Он сначала пытается заменить str на s_str, потом находит s_str и пытается заменить ее на s_s_str, потом на s_s_s_str и т.д.
Нет, не должно быть так. Ведь на рисунке показано, что заменять нужно только слово целиком. Если бы было без отметки "Только слово целиком", то тогда действительно имеем бесконечный цикл.
Это глюк редактора. Он сначала пытается заменить str на s_str, потом находит s_str и пытается заменить ее на s_s_str, потом на s_s_s_str и т.д.
если бы :(
посмотрите на скрин - что он там подсветил?! и к томуже - остальные тексты он позаменял правильно. так что скорее всего дело именно в какомто сочетании символов в StringSubstr(str на котором чтото и глюкает. А даже если бы эта галочка не стояла - так зацикливаться оно не должно - следующий поиск должен начинаться ПОСЛЕ последнего вставленного символа и никаких s_s_s_str не должно быть ваааааще
Можно гарантировать отсутствие ответа от Метаквотов. Это будет большим чудом, если ответят.
Подобную тему поднимал. Ни одного ответа от них не было.
Можно гарантировать отсутствие ответа от Метаквотов. Это будет большим чудом, если ответят.
Ну я надеюсь что они читают этот форум более менее внимательно и на моем тестовом тексте смогут выловить глюк и в очередном билде его поправят.
А вообщето, (модераторам) наверно стоило бы завести прилепленную веточку "Найденные ошибки" в которой не будет ничего кроме сообщения об ошибке и ответа о том когда и как она была исправлена.
А цирк продолжается и в 223 билде...
Задал контекстный поиск одной единственной буковки n с учетом регистра и что нашол ваш редактор?!!!! Это уже вообще ни в какие ворота не лезет...
Господа разработчики - разберитесь пожалуйста и срочно поправьте глюк в контекстной замене
Вот строчка кода в которой глючит ваш поиск
Signal = Calc_Signal(Signal_Name, s, SymbolsNames[n], TF_Period[i], MarkerTime, ShortPeriod, LongPeriod, MethodMA, AppliedPrice);
эта строчка для проверки была единственная вставленная в стандартный шаблон вновь создаваемого советника.
Кстати "\n" тоже обрабатывается по идиотски...
А ларчик просто открывался: смещение влево происходит на столько символов, сколько поисковой строки найдется до правильной поисковой комбинации.
В моей строчке до индекса [n] три буквы n:
Signal = Calc_Signal(Signal_Name, s, SymbolsNames[n], ....
вот и сместилась отметка отметка выделения найденного фрагмента на такоеже к-во символов назад. Если убрать\добавить несколько буковок n - неправильное смещение сместится на соответствующую величину.
Где то в коде редактора есть очепятка или логическая ошибка. Теперь найти ее будет легче, поскольку ясно где и как она проявляется.
А ларчик просто открывался: смещение влево происходит на столько символов, сколько поисковой строки найдется до правильной поисковой комбинации.
В моей строчке до индекса [n] три буквы n:
вот и сместилась отметка отметка выделения найденного фрагмента на такоеже к-во символов назад. Если убрать\добавить несколько буковок n - неправильное смещение сместится на соответствующую величину.
Где то в коде редактора есть очепятка или логическая ошибка. Теперь найти ее будет легче, поскольку ясно где и как она проявляется.
Теперь только осталось обратить ВЫСОЧАЙШЕЕ внимание на эту находку...
я уже отправил Ринату в личку сообщение - надеюсь лички он читает внимательнее чем все необъятные темы форума :)
заодно еще один глюк попросил поправить
И заодно поправьте еще один: когда на чарте есть два перекрывающихся
текстовых объекта, то при на наезде мышкой на их общую зону выдается
подсказка по НИЖНЕМУ объекту, а он может быть полностью скрыт ВЕРХНИМ,
и возникает непонятка, почему по видимому объекту над которым висит
мышь выдается НЕ ЕГО подсказка: как на этом скрине - сверху линия со
знаками равенства и при наезде мыши на нее хочется видеть именно ее
подсказку (я этот "трюк" использую чтобы показать дополнительные
сведения об объекте), а выдается сами видите что :(
Я так думаю что тут тоже все просто: просто сменить порядок просмотра объектов при поиске текста: если сейчас цикл идет от первого объекта к последнему for(i=0;i<ObjectsTotal();i++) то его надо заменить на обратный for(i=ObjectsTotal();i>=0;i--) ну или наоборот ;)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Попытался я сделать глобальную замену в тексте str на s_str. Вызвал окошко - ввел тексты - нажал кнопочку "заменить все" .... Metaedit-ор ушел в глухой цикл: на экране все дергается и никак замена не закончится. Убил его и сделал тоже самое ручками пошагово. Вот что получается: первые два вхождения найдены и заменены правильно а вот на третьем происходит какоето смещение и текст не заменяется :(
после него находится четвертое вхождение и тоже заменяется нормально, но после этого находится незамененное третье (уже с другим смещением), снова не заменяется но снова находится - и тут бесконечный цикл.
Вот (демо)код на котором это происходит:
220 - Build