Remover Acentos: String e Char - Delphi
Veja nesta Quick como podemos remover os acentos de uma texto, seja uma string ou um simples char
Olá galera, nesta Quick Tips, irei mostra como podemos remover os acentos de uma texto, seja uma string ou um simples char. Vejamos como implementar e reaproveitar este método.
Inicialmente vamos criar um exemplo, adicionando em nosso form, e salvando o mesmo como uFrmPrincipal.pas :
1 Button (BtnRemoverAcentos)
3 Edit (EdtExemplo1, EdtResultado, EdtExemplo2)
2 GroupBox (GroupBoxExemplo1, GroupBoxExemplo2)
Nosso exemplo completo
Iremos agora na seção private criar uma function para remover os acentos, vejamos sua declaração:
private
{ Private declarations }
function RemoverAcento(Key: Char): char;
public
{ Public }
RemoverAcento
{ Com esta função estamos verificando se a variável Key possui algum acento, usando a instrução in, por exemplo se digitarmos 'é','è','ê', o resultado da função será “e” , e assim por diante, com esta função podemos trocar também “.” por “,” ou “,” por “.”, basta adaptar seguindo este modelo.}
function TFrmPrincipal.RemoverAcento(Key: Char): char;
begin
if (key in ['é','è','ê']) then
begin
Result := 'e';
end
else
if (key in ['É','È','Ê']) then
begin
Result := 'E';
end
else
if (key in ['á','à','ã','â']) then
begin
Result := 'a';
end
else
if (key in ['Á','À','Ã','Â']) then
begin
Result := 'A';
end
else
if (key in ['í','ì','Í','Ì','î','Î']) then
begin
Result := 'i';
end
else
if (key in ['Í','Ì','Î']) then
begin
Result := 'I';
end
else
if (key in ['ó','ò','õ','ô']) then
begin
Result := 'O';
end
else
if (key in ['Ó','Ò','Õ','Ô']) then
begin
Result := 'O';
end
else
if (key in ['ú','ù']) then
begin
Result := 'u';
end
else
if (key in ['Ú','Ù']) then
begin
Result := 'U';
end
else
if (key in ['ç']) then
begin
Result := 'c';
end
else
if (key in ['Ç']) then
begin
Result := 'C';
end
else
Result := Key;
end;
{ Com este método ao clicamos no nosso BtnRemoverAcentos, todo o conteúdo de EdtExemplo1, que contiver acentos, imediatamente será substituído por caracteres sem acento }
BtnRemoverAcentos
procedure TFrmPrincipal.BtnRemoverAcentosClick(Sender: TObject);
Var
S : String;
I : Integer;
begin
for I := 1 to Length(EdtExemplo1.Text) do
begin
S := S + RemoverAcento(EdtExemplo1.Text[I]);;
end;
EdtResultado.Text := S;
end;
{ Com este método ao digitarmos qualquer coisa no EdtExemplo2, que possua acento automaticamente o mesmo será substituído por um caracter sem acento }
EdtExemplo2Change
procedure TFrmPrincipal.EdtExemplo2KeyPress(Sender: TObject; var Key: Char);
begin
key := RemoverAcento(Key);
end;
Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.
Um abraço
Wesley Y
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo