RSS

  • YouTube
  • LinkedIn
  • Google

Archivos de la : October2015

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) comenzar pos := ord(s[me]);
      If (s[me] en [#32, #48..#57, #65..#90, #97..#122]) entonces el resultado[me] := s[me]
      comenzar otra pos := AnsiPos(s[me], undesiredchars);
          Resultado[me] := reemplaza[POS + 1];
        final;
    final;

final;

 ;