1) Ошибки в конекстной замене
2) Попытался я сделать глобальную замену в тексте str на s_str. Вызвал окошко - ввел тексты - нажал кнопочку "заменить все" .... Metaedit-ор ушел в глухой цикл: на экране все дергается и никак замена не закончится. Убил его и сделал тоже самое ручками пошагово. Вот что получается: первые два вхождения найдены и заменены правильно а вот на третьем происходит какоето смещение и текст не заменяется :(
после него находится четвертое вхождение и тоже заменяется нормально, но после этого находится незамененное третье (уже с другим смещением), снова не заменяется но снова находится - и тут бесконечный цикл.
Вот (демо)код на котором это происходит:
int start() { string str = "01234567890"; str = StringSubstr(str, 3); Print(str); }
220 - Build
Вот строчка кода в которой глючит ваш поиск
Signal = Calc_Signal(Signal_Name, s, SymbolsNames[n], TF_Period[i], MarkerTime, ShortPeriod, LongPeriod, MethodMA, AppliedPrice);
эта строчка для проверки была единственная вставленная в стандартный шаблон вновь создаваемого советника.
смещение влево происходит на столько символов, сколько поисковой строки найдется до правильной поисковой комбинации.
В моей строчке до индекса [n] три буквы n:
Signal = Calc_Signal(Signal_Name, s, SymbolsNames[n], ....
вот и сместилась отметка отметка выделения найденного фрагмента на такоеже к-во символов назад. Если убрать\добавить несколько буковок n - неправильное смещение сместится на соответствующую величину.
Неправильное отображение подсказки в текстовых объектах
когда на чарте есть два перекрывающихся
текстовых объекта, то при на наезде мышкой на их общую зону выдается
подсказка по НИЖНЕМУ объекту, а он может быть полностью скрыт ВЕРХНИМ,
и возникает непонятка, почему по видимому объекту над которым висит
мышь выдается НЕ ЕГО подсказка: как на этом скрине - сверху линия со
знаками равенства и при наезде мыши на нее хочется видеть именно ее
подсказку (я этот "трюк" использую чтобы показать дополнительные
сведения об объекте), а выдается сами видите что :(
Я так думаю что тут тоже все просто: просто сменить порядок просмотра объектов при поиске текста: если сейчас цикл идет от первого объекта к последнему for(i=0;i<ObjectsTotal();i++) то его надо заменить на обратный for(i=ObjectsTotal();i>=0;i--) ну или наоборот ;)
PenCollector: not enough space in array.
Исправлена в 221 билде.
сколько кодю всегда напрягал мелкий глюк в МетаЕдиторе
проявлется глюк только при редактировании кода содержащего более тысячи строк
в случае неудачной компиляции кликая на список ошибок курсор не перемещается на участок кода с ошибкой по указанному адресу (строка/колонка)
Редактор MQL не проверяет, что файл был изменен без его участия, когда я переключаюсь на него или запускаю снова. Приходится закрывать/открывать файл.
"Замена" в редакторе не развита, поэтому юзаю NotePad++
Проблема с параметрами по умолчанию.
Библиотека Test.mq4
#property library void TestFunction(int param1, int param2 = EMPTY) { Print("TestFunction ", param1, " ", param2); }
Ашник TestHeader.mqh
#import "Test.ex4" void TestFunction(int param1, int param2 = EMPTY); #import
Советник TestXpert.mq4
#include <TestHeader.mqh> int start() { TestFunction(100); return(0); }
При компиляции советника выдается:
')' - wrong parameters count F:\...\experts\TestXpert.mq4 (5, 20)
Проблема с параметрами по умолчанию.
Библиотека Test.mq4
Ашник TestHeader.mqh
Советник TestXpert.mq4
При компиляции советника выдается:
')' - wrong parameters count F:\...\experts\TestXpert.mq4 (5, 20)
Это - не ошибка, а явно описанное поведение https://docs.mql4.com/ru/basis/preprosessor/import
"Параметры, передаваемые в импортируемые функции (как из EX4, так и из DLL-модулей), не могут иметь значения по умолчанию."
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Эта тема создана для информирования разработчиков о найденных ошибках в работе торгового терминала МТ4 и реализации языка программирования MQL4.
Посты в этой теме должны содержать только ссылки на другие темы с обсуждения найденных ошибок или следующие обязательные пункты регистрации ошибки в этой теме:
Обсуждение найденых ошибок производится в другой теме ИЗВЕСТНЫЕ ОШИБКИ ПЛАТФОРМЫ МТ4 (Обсуждение ошибок).
Эта тема должна остаться просто реестром-справочником ошибок.