![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще одно наблюдения. Я третьего дня поднимал аналогичный вопрос, но в более общем виде: Как определить пустую строковую переменную? Были предложены решения выхода из этой ситуации (спасибо откливнушимся), но вопрос так и остался открытым. Поскольку остальные не придали значения обсуждению (как разработчики, так и тредстартер, пока его тот же петух в то ж-ж-е место не клюнул ;), я пользуюсь случаем спросить авторитетного мнения Rosh'а:
Благодарю за ссылку. Изучу на досуге. Буду на Ваших граблях учиться :)
Да, совет Роша помог. Спасибо!
В своё время мы убрали вывод в лог сообщений об ошибках 4002, 4008 и 4009. Вызовите GetLastError() после первого же обращения к неинициализированной строке массива и Вы получите 4009.
В своё время мы убрали вывод в лог сообщений об ошибках 4002, 4008 и 4009. Вызовите GetLastError() после первого же обращения к неинициализированной строке массива и Вы получите 4009.
Но вообще опертор типа PosComments[i] = PosComments[i] + "Z" есть эквивалент работы со строковаой переменной
string CommentStr;
CommentStr = CommentStr + "Z";
Во втором случае тоже надо инициализировать сначала строку явно?
Мне же кажется, если применяется оператор CommentStr + "Z" к неинициализированной строке, то она должна по умолчанию быть инициализировна пустой строкой и выделена память для строкового объекта CommentStr. Хотя возможно это замедлит выполнение оператор объединения строк "+". Но не думаю что условие проверки скрадёт много процессорного времени.
Не хочется после каждого оператрока вызывать GetLastError особенно где очевидно поведение. Не хочется захламлять код ненужными проверками, где они впринципе не нужны.