Substituir caracteres especiais em Strings Delphi
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;
2 Respostas
Poderia colocar de forma certa? e não traduzido
Fica até melhor para entender, do que tentar decifrar o que é “para eu” e “final”
Não entendi o questionamento.