[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 58
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Переделал немного функцию замены символов строки через массивы:
string StrReplaceTwo(string text){
string textMod[] ={""};
string symbols1[] = {"12","15","19","13","14","16"};
string symbols2[] = {"a","b","c","d","e","f"};
string textNew="";
int textLen = StringLen(text);
for (int i1=0; i1<textLen; i1=i1+2)
{
string TwoSymbols = StringSubstr(text,i1,2);
for (int i2=0; i2<ArraySize(symbols1); i2++)
{
if (symbols1[i2]==TwoSymbols) {textNew = textNew + symbols2[ i2 ] ; i2=ArraySize(symbols1) ; }
}
}
return (textNew);
}
Теперь она перебирает по 2 символа в строке, например строка 1215 заменится на ab. Но столкнулся с проблемой: функция опускает символы, которых нет в массиве и опускает последний символ, если в строке нечетное количество символов. Помогите пожалуйста изменить функцию так, чтобы строку 1214153 она заменяла бына a14b3. Благодарю!
Помогите пожалуйста изменить функцию так, чтобы строку 1214153 она заменяла бына a14b3. Благодарю!
Непонятна логика, у тебя ж есть 14 в массиве, т.е. должно быть заменено на "е". С четностью можно нагромоздить, но лучше добавлять нули, т.е. заменить 3 на 03.
Переделал немного функцию замены символов строки через массивы:
По-моему, вы мудрите чего-то. Если вам необходима функция замены подстрок, можете воспользоваться таким вариантом:
чуть подправил конец, не сразу обратил внимание на возможность зацикливания
Непонятна логика, у тебя ж есть 14 в массиве, т.е. должно быть заменено на "е". С четностью можно нагромоздить, но лучше добавлять нули, т.е. заменить 3 на 03.
По-моему, вы мудрите чего-то. Если вам необходима функция замены подстрок, можете воспользоваться таким вариантом:
Lians:
Оу, сорри, не заметил, тогда допустим 1217153 на a17b3, насчет четности - подойдет вариант с добавлением нулей, сможете так сделать?
Спасибо, но не могу скомпилировать, ругается на строку:
if(x) textNew +=StrToInteger(TwoSymbols);
вот так ругается: '+=' - both operands are to be numeric
как исправить?
Спасибо, но не могу скомпилировать, ругается на строку:
вот так ругается: '+=' - both operands are to be numeric
как исправить?
Это не работает для строк в MQL4.
Спасибо, но не могу скомпилировать, ругается на строку:
вот так ругается: '+=' - both operands are to be numeric
как исправить?