Fórum Criar um Array que percorra um componente de Texto. #371787
01/07/2009
0
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
Curtir tópico
+ 0Posts
01/07/2009
Danielrsanches
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
01/07/2009
Woinch
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
01/07/2009
Ricardo Schnaider
Muito obrigado pela ajuda
vou tentar fazer como vocês falaram
Muito obrigado pela força
Abraços.
Gostei + 0
02/07/2009
Osocram
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.
RichEdit1.Text:= AnsiReplaceStr(RichEdit1.Text,´texto a substituir´,´texto substituto´);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)