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;
Could put it right? and untranslated
It's even better to understand, do que tentar decifrar o que é “;para eu”; e “;final”;
Não entendi o questionamento.