Agora ele passa por 2 caracteres por corda, por exemplo, a corda 1215 será substituída por ab. Mas encontrei um problema: a função omite os caracteres que não estão na matriz e omite o último caractere se a cadeia tiver um número ímpar de caracteres. Por favor, ajude a mudar a função para que a corda 1214153 seja substituída por a14b3. Obrigado!
Por favor, ajude-me a mudar a função para que a linha 1214153 seja substituída por a14b3. Obrigado!
Eu não entendo a lógica, você tem 14 na matriz, ou seja, deve ser substituída por "e". Você pode brincar com a paridade, mas é melhor adicionar zeros, ou seja, substituir 3 por 03.
Eu retrabalhei um pouco a função de substituição de caracteres de corda com arrays:
Acho que você está ficando um pouco louco. Se você precisar de uma função de substituição de substrato, você pode usar esta opção:
// функция ищет matched_text в строке text и заменяет его на replace_textstring StringReplace(string text, string matched_text, string replace_text)
{
int pos=StringFind(text,matched_text);
while(pos>=0)
{
if(pos==0) text = StringConcatenate(replace_text,StringSubstr(text,StringLen(matched_text)));
else text = StringConcatenate(StringSubstr(text,0,pos),replace_text,StringSubstr(text,pos+StringLen(matched_text)));
pos=StringFind(text,matched_text,pos+StringLen(replace_text));
}
return(text);
}
Eu afinei um pouco o final, não notei imediatamente o recurso de looping
Não entendo a lógica, você tem 14 na matriz, ou seja, ela deve ser substituída por "e". Você pode brincar com a paridade, mas é melhor adicionar zeros, ou seja, substituir 3 por 03.
Oh, desculpe, não notei, então digamos 1217153 a a17b3, sobre paridade - adicionar zeros é bom, você pode fazer isso? Ou deixar omitir o último personagem, eu achei que isso não é importante.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Eu reescrevi a função de substituição de cordas com matrizes:
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);
}
Agora ele passa por 2 caracteres por corda, por exemplo, a corda 1215 será substituída por ab. Mas encontrei um problema: a função omite os caracteres que não estão na matriz e omite o último caractere se a cadeia tiver um número ímpar de caracteres. Por favor, ajude a mudar a função para que a corda 1214153 seja substituída por a14b3. Obrigado!
Por favor, ajude-me a mudar a função para que a linha 1214153 seja substituída por a14b3. Obrigado!
Eu não entendo a lógica, você tem 14 na matriz, ou seja, deve ser substituída por "e". Você pode brincar com a paridade, mas é melhor adicionar zeros, ou seja, substituir 3 por 03.
Eu retrabalhei um pouco a função de substituição de caracteres de corda com arrays:
Acho que você está ficando um pouco louco. Se você precisar de uma função de substituição de substrato, você pode usar esta opção:
Eu afinei um pouco o final, não notei imediatamente o recurso de looping
Não entendo a lógica, você tem 14 na matriz, ou seja, ela deve ser substituída por "e". Você pode brincar com a paridade, mas é melhor adicionar zeros, ou seja, substituir 3 por 03.
Acho que você está ficando um pouco louco. Se você precisar da função de substituição do substrato, você pode usar esta opção:
Lians:
Oh, desculpe, não notou, então digamos 1217153 em a17b3, sobre paridade - a opção de adicionar zeros funcionaria, você pode fazer isso?
Obrigado, mas não posso compilá-lo, ele está batendo em uma corda:
if(x) textNew +=StrToInteger(TwoSymbols);diz: '+=' - ambos os operandos devem ser numéricos
Como posso consertá-lo?
Obrigado, mas não posso compilá-lo, ele está batendo em uma corda:
Jura assim: '+=' - ambos os operandos devem ser numéricos
Como posso consertá-lo?
Não funciona para cordas na MQL4.
Obrigado, mas não posso compilá-lo, ele está batendo em uma corda:
diz: '+=' - ambos os operandos devem ser numéricos
Como posso consertá-lo?