Правильно ругается - справку в MetaEditor'e просмотрите:
StringGetChar
Возвращает значение символа, расположенного в указанной позиции строки.
int StringGetChar( string string_value, // строка int pos // позиция символа в строке );
barabashkakvn:
По справке все эти команды я посмотрел, но т.к. в программировании не силен, разобраться что сделать сам не смог, поэтому и спросил что нужно исправить чтобы работало. Индикаторов с таким блоком кода много и повторюсь, что раньше они работали, а сейчас нет.
Правильно ругается - справку в терминале просмотрите:
string stringUpperCase(string str) { string s=str; int char_code=0; for(int length=StringLen(str)-1; length>=0; length--) { char_code=StringGetChar(s,length); if((char_code>96 && char_code<123) || (char_code>223 && char_code<256)) s=StringSetChar(s,length,ushort(char_code-32)); else if(char_code>-33 && char_code<0) s=StringSetChar(s,length,ushort(char_code-32)); } return(s); }Теперь компилятор не ругается.
barabashkakvn:
Теперь компилятор не ругается.
Спасибо попробую. Была мысль, что просто нельзя "char" использовать в качестве имени переменной, и исправить добавлением буквы или наоборот отниманием одной двух букв от "char". После подобного исправления метаэдитор хоть и перестает выдавать ошибки, но индикаторы все равно не работают. Буду пробовать ваш вариант.
Теперь компилятор не ругается.
karamaza:
Спасибо попробую. Была мысль, что просто нельзя "char" использовать в качестве имени переменной, и исправить добавлением буквы или наоборот отниманием одной двух букв от "char". После подобного исправления метаэдитор хоть и перестает выдавать ошибки, но индикаторы все равно не работают. Буду пробовать ваш вариант.
Мысль правильная. Подтверждается справкой.
Спасибо попробую. Была мысль, что просто нельзя "char" использовать в качестве имени переменной, и исправить добавлением буквы или наоборот отниманием одной двух букв от "char". После подобного исправления метаэдитор хоть и перестает выдавать ошибки, но индикаторы все равно не работают. Буду пробовать ваш вариант.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые, понимающие люди. Подскажите как подправить строки кода. Во многих индикаторах терминала MT4 встречается один и тот же блок кода, на котором в метаэдиторе выскакивают ошибки и индикатор соответственно не работает (Несколько лет назад все работало, что поменялось непонятно) .
Строки следующие:
Начиная с "int char" начинаются ошибки, ругается на char и т.д.
Заранее всем благодарен за участие.