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 responses to ;Substituir inteligentes especiais em Delphi cadenas;

  1. Punto de referencia Avatar
    Punto de referencia

    Podría corregirlo? y sin traducir
    Es aún mejor entender, do que tentar decifrar o que é “;para eu”; e “;final”;

    1. Marcos Regis Avatar
      Marcos Regis

      No entendí el cuestionamiento.

Contesta

Su dirección de correo electrónico no se publicará. Los campos obligatorios están marcados *