Excluir todas as ocorrências de um caractere de uma string no Delphi
Inclua na seção uses:SysUtils
Problema:
Em determinados casos gostaria de poder eliminar alguns
caracteres indesejados que os usuários podem digitar, tais
como pontos, aspas, etc. Como fazer isto?
Solução:
Na função abaixo, o primeiro parâmetro é o caractere a ser
eliminado e o segundo parâmetro é a string, donde o caractere
será eliminado.
function DeleteChar(const Ch: Char; const S: string): string;
var
Posicao: integer;
begin
Result := S;
Posicao := Pos(Ch, Result);
while Posicao > 0 do begin
Delete(Result, Posicao, 1);
Posicao := Pos(Ch, Result);
end;
end;
=== Exemplo de uso ===
- Coloque um Edit e um Button.
- Programe o OnClick do botão conforme abaixo:
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := DeleteChar('"', Edit1.Text); { Exclui aspas }
Edit1.Text := DeleteChar('.', Edit1.Text); { Exclui pontos }
end;
Observações
Para eliminar vários caracteres poderíamos escrever uma função que fizesse toda a tarefa numa única chamada.