Hoje eu precisei modificar um antigo sistema feito em Delphi para gerar arquivos contendo algumas informações. Nestas informações há elementos que se utilizam de caracteres não Alpha-numéricos como “:” e “/” e eis que para minha surpresa sou obrigado a removê-los.
Procurei por uma função que substituísse caracteres como “Ç” para “C” e só encontrei funções de remoção.
Então criei a minha que está logo abaixo.
{
Substitui caracteres especiais por equivalentes ASCII
}
Function ReplaceNonAscii(const s: String) : String;
var i, pos: Integer;
const undesiredchars : String = '/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÜÚÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ';
const replaces : String = ' AAAAAAACEEEEIIIIDNOOOOOxOUUUbBaaaaaaaceeeeiiiionooooo ouuuby';
Begin
SetLength(Result, Length(s));
for i := 1 to Length(s) do
begin
pos := ord(s[i]);
if (s[i] in [#32, #48..#57, #65..#90, #97..#122]) then
Result[i] := s[i]
else
begin
pos := AnsiPos(s[i], undesiredchars);
Result[i] := replaces[pos + 1];
end;
end;
end;
Deixe um comentário