Substituir inteligentes especiais em Delphi cadenas
Hoy tuve que modificar un sistema antiguo hecho en Delphi para generar archivos que contienen información. Nestas informações há elementos que se utilizam de caracteres não Alpha-numéricos como “;:”; e “;/”; y he aquí, para mi sorpresa yo estoy obligado a eliminarlos.
Procurei por uma função que substituísse caracteres como “;Ç”; para “;C”; y sólo se encuentran las funciones de eliminación.
Entonces he creado mi que está justo debajo.
{ Reemplaza caracteres especiales de equivalentes ASCII } Función ReplaceNonAscii(const s: Cadena) : Cadena; var, POS: Entero; undesiredchars const : Cadena = ' / ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ × ØÙÜÚÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùüúþÿ'; reemplaza const : Cadena = 'AAAAAAACEEEEIIIIDNOOOOOxOUUUbBaaaaaaaceeeeiiiionooooo ouuuby'; Begin SetLength(Resultado, Longitud(s)); para := 1 a la longitud(s) Hacer Comenzar Pos := ord(s[me]); If (s[me] en [#32, #48..#57, #65..#90, #97..#122]) luego Resultado[me] := s[me] Else Begin Pos := AnsiPos(s[me], undesiredchars); Resultado[me] := reemplaza[POS + 1]; final; final; final;
2 Respuestas
Podría corregirlo? y sin traducir
Es aún mejor entender, do que tentar decifrar o que é “;para eu”; e “;final”;
No entendí el cuestionamiento.