Criar um Array que percorra um componente de Texto.
Oi Pessoal Estou precisando de uma ajuda
Se alguém poder me ajudar ficarei grato
é o seguinte :
eu preciso percorrer todo o meu componente (DBRichEdit1) tenho que percorrer todo o texto que for digitado dentro dele
para fazer umas substituições de caracteres
[b:5abd394409]Exemplo : [/b:5abd394409]
Percorre o Texto do (DBRichEdit1) e quando encontrar ´\´EA´ dai tenque substituir por ´ê´ e se encontrar ´\´ED´ Substitui por ´í´
é basicamente isso pessoal
só preciso percorrer todo o texto que estiver dentro do componente e substituir uns códigos por uns caracteres
eu acho que terei de usar um array , mais ainda não sei direito como fazer esse array que execute essa função
Se alguém poder me ajudar eu agradeço.
Abraços.
Se alguém poder me ajudar ficarei grato
é o seguinte :
eu preciso percorrer todo o meu componente (DBRichEdit1) tenho que percorrer todo o texto que for digitado dentro dele
para fazer umas substituições de caracteres
[b:5abd394409]Exemplo : [/b:5abd394409]
Percorre o Texto do (DBRichEdit1) e quando encontrar ´\´EA´ dai tenque substituir por ´ê´ e se encontrar ´\´ED´ Substitui por ´í´
é basicamente isso pessoal
só preciso percorrer todo o texto que estiver dentro do componente e substituir uns códigos por uns caracteres
eu acho que terei de usar um array , mais ainda não sei direito como fazer esse array que execute essa função
Se alguém poder me ajudar eu agradeço.
Abraços.
Ricardo Schnaider
Curtidas 0
Respostas
Danielrsanches
01/07/2009
se eu entendi bem o que vc quer é mais simples do que vc pensa ...
só não se esqueça de declarar StrUtils na cláusula uses...
abraços !!
RichEdit1.Text:= AnsiReplaceStr(RichEdit1.Text,´texto a substituir´,´texto substituto´);
só não se esqueça de declarar StrUtils na cláusula uses...
abraços !!
GOSTEI 0
Woinch
01/07/2009
Existe a função StringReplace também.
Agora se o texto for muito grande é melhor fazer um laço que varrendo caractere a caractere para fazer as validações. Para isso as funções Copy, Delete e Insert irão lhe ajudar. Dê uma pesquisada sobre como utiliza-las. Vale deixar o lembrete do colega de declarar a biblioteca StrUtils.
Exemplo:
Qualquer dúvida favor responder.
Agora se o texto for muito grande é melhor fazer um laço que varrendo caractere a caractere para fazer as validações. Para isso as funções Copy, Delete e Insert irão lhe ajudar. Dê uma pesquisada sobre como utiliza-las. Vale deixar o lembrete do colega de declarar a biblioteca StrUtils.
Exemplo:
s := RichEdit1.Text; for I := 0 to Length(s) -1 do ShowMessage(´Caractere que está sendo visto: ´ + s[I]);
Qualquer dúvida favor responder.
GOSTEI 0
Ricardo Schnaider
01/07/2009
Valeu Mesmo colegas
Muito obrigado pela ajuda
vou tentar fazer como vocês falaram
Muito obrigado pela força
Abraços.
Muito obrigado pela ajuda
vou tentar fazer como vocês falaram
Muito obrigado pela força
Abraços.
GOSTEI 0
Osocram
01/07/2009
1)Olha eu recomendo fazer o AnsiReplaceStr do q o for... pq fazer um loop se ja tem um método pronto?
2)Outra coisa é muito mais facil vc entender o ansiReplaceStr do que um loop depois qdo tiver que dar manutenção. E o loop vai ser caracter por caracter, então vc vai ter que ir concatenando os caracter p ver se é o que vc quer substituir
3) essa função que o Woinch comentou StringReplace, serve para substituir strings tbm, mas no seu caso não seria recomendável pois vc esta utilizando caracter com acentuação, pode dar errado. E tem uma outra diferenção essa função StringReplace substitui apenas a primeira que ele encontrar por padrão, se quiser substituir todas de uma so vez tem q usar um parametro reReplaceAll.
2)Outra coisa é muito mais facil vc entender o ansiReplaceStr do que um loop depois qdo tiver que dar manutenção. E o loop vai ser caracter por caracter, então vc vai ter que ir concatenando os caracter p ver se é o que vc quer substituir
3) essa função que o Woinch comentou StringReplace, serve para substituir strings tbm, mas no seu caso não seria recomendável pois vc esta utilizando caracter com acentuação, pode dar errado. E tem uma outra diferenção essa função StringReplace substitui apenas a primeira que ele encontrar por padrão, se quiser substituir todas de uma so vez tem q usar um parametro reReplaceAll.
se eu entendi bem o que vc quer é mais simples do que vc pensa ...
só não se esqueça de declarar StrUtils na cláusula uses...
abraços !!
RichEdit1.Text:= AnsiReplaceStr(RichEdit1.Text,´texto a substituir´,´texto substituto´);
GOSTEI 0