Оппа. Жалобы на то, что некий хак перестал работать...
if(Selected) SymbolsFileName = "symbols.sel"; else SymbolsFileName = "symbols.raw"; int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ); if(hFile < 0) return(-1); if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116; } else { SymbolsNumber = FileSize(hFile) / 1936; Offset = 1924; }
Тип string это массив char. Попробуй перевести свой string в char[]. Структуры так же тебе в помощь, внутри MQL4 структура включающая данные типа string можно передавать в качестве параметров, сам это использую.
Тип string это массив char.
Откуда такой вывод?
Откуда такой вывод?
проблема как вы выразились не с хаком :-) он то какраз как работал так и рабоатет)
а проблема с МАССИВАМИ СТРОК
поэтому char[] не подходит для этого т.к. это массив символов.
попробуйте создать динамический массив строк в мт4 новом
например
string test[];
и затем его размер изменить
ArrayResize(test,2);
и затем использовать его ) будите очень удивлены, что это перестало работать.
вариант с ushort попробую, однако юникод теперь сильно усложняет работу со строками и их обработкой(
void OnTick() { //--- string test[]; ArrayResize(test,2); test[0]="tester 1"; test[1]="tester 2"; for(int i=0;i<ArraySize(test);i++) Print(test[i]); } такой код вызывает исключение с последующим завершением терминала до 509 билда включительно такое прекрасно работало
такой код вызывает исключение с последующим завершением терминала
до 509 билда включительно такое прекрасно работало
а вы скрипт запускаете??? (в скрипте не OnTick(), а OnStart())
п.с. в скрипте код работает верно ( у меня по крайней мере).
string test[1]; ArrayResize(test,2); test[0]="tester 1"; test[1]="tester 2";так заработало, однако теперь тайна как использовать это в функция которая передает массив по ссылке
а вы скрипт запускаете??? (в скрипте не OnTick(), а OnStart())
п.с. в скрипте код работает верно ( у меня по крайней мере).
почему скрипт, советник у меня. создал Советник (шаблон)
отписал в сервис деск, может чего скажут понятное.
почему скрипт, советник у меня. создал Советник (шаблон)
отписал в сервис деск, может чего скажут понятное.
void OnTick(){ string test[]; F(test); for(int i=0;i<ArraySize(test);i++) Print(test[i]); } void F(string &test[]){ ArrayResize(test,2); test[0]="tester 2"; test[1]="tester 3"; }В чем проблема?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования