Criar um Array que percorra um componente de Texto.

Delphi

01/07/2009

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.


Ricardo Schnaider

Ricardo Schnaider

Curtidas 0

Respostas

Danielrsanches

Danielrsanches

01/07/2009

se eu entendi bem o que vc quer é mais simples do que vc pensa ...

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

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:

 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

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.


GOSTEI 0
Osocram

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.

se eu entendi bem o que vc quer é mais simples do que vc pensa ...
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
POSTAR