непонятки с поведением переменных - страница 5

 
Со строками есть проблемы, это факт. Странно что этими косяками никто не занимается. А, хотя нет, не странно. Всего месяц до перехода.
 

Спасибо за признаниние MetaDriver и TheExpert а то надоело уже доказывать в чем не порядок когда тут другие только между строчек читают и неуместные коментары отдают

Я надеелся здесь на форуме правильно сообщить об ошибке, но некоторые чуствуют себя должным дать ответ не вникнув в то о чём идёт речь

 
wlad:

приведу пример для сравнения поведения для стрингов и интов

и вывод в лог:

1. загрузка эксперта и иницилизация глобальных переменных

2. передача экстерных переменных глобальным переменным. однократная передача реализованная через bool firsttime

3. изменение внешних переменных

4. здесь видно разницу

tempString принимает значение ValueString - неправильно

tempInt сохраняет своё значение хотя ValueInt изменилась - правильно

5 и 6 аналогично 3 и 4


прошу объяснить почему стринг ведёт сябе по другому

в то время как инт правельно

прошу конретных ответов посути


Кажись понял в чём проблема...Если при тестирование в свойствах эксперта изменили параметры вручную, то они будут сохранятся где-то в .tpl файлах и даже перекомпиляция советника не поможет. Только кнопочка "Сброс". Косяк это или нет, не знаю...
 
Получается что если что-то изменил в коде, extern остаётся от прежнего, предыдущей версии. И только сброс параметров эксперта помогает. Косяк это или нет?.... ещё раз повторяюсь..... не знаю......
 
wlad:

Спасибо за признаниние MetaDriver и TheExpert а то надоело уже доказывать в чем не порядок когда тут другие только между строчек читают и неуместные коментары отдают

Я надеелся здесь на форуме правильно сообщить об ошибке, но некоторые чуствуют себя должным дать ответ не вникнув в то о чём идёт речь


нужно правильно вопросы формулировать, о том что это проблема тестера вы ничего не сказали
 

это проблеме не тестера!

1. эксперт запускается в нормальном рабочем режиме на графике, не в тестере!

я о тестере ни одного слва не упомянул не знаю откуда вы это взяли!

2. во время работы изменяются внешние параметры

3. проблема возникает впоследствии с глобальной переменной типа стринг, которая ошибочно принимает значение

внешней переменной при изменении последней.

 
wlad:

это проблеме не тестера!

1. эксперт запускается в нормальном рабочем режиме на графике, не в тестере!

я о тестере ни одного слва не упомянул не знаю откуда вы это взяли!

2. во время работы изменяются внешние параметры

3. проблема возникает впоследствии с глобальной переменной типа стринг, которая ошибочно принимает значение

внешней переменной при изменении последней.


Любопытно. Вы не могли бы полностью выложить код TestInit2.
 

Черт, я может тупой....Но все правильно работает!....Даже по приведённому Вами логу...

На первом тике меняется tempString и tempInt. а уже потом выводится в лог. Уже со второго тика ничего не меняется, а просто принтуется. Поставьте принты и комменты перед if. И увидите разницу.

 
valenok2003:

Любопытно. Вы не могли бы полностью выложить код TestInit2.

все три приведенных примера полностью выложены

код был упрощён до минимала

 
Sepulca:

Черт, я может тупой....Но все правильно работает!....Даже по приведённому Вами логу...

На первом тике меняется tempString и tempInt. а уже потом выводится в лог. Уже со второго тика ничего не меняется, а просто принтуется. Поставьте принты и комменты перед if. И увидите разницу.

вы правдо не все читаете

я же указал, что проблема явна при изменении внешних переменных

прочитайте пример внимательней


первые примеры с инитом выводили только самое необходимое в журнал для локолизации ошибки, просто потом переделал на вызов

из start() так как многих смущала функция init()

Причина обращения: