Translate

Explicación

Existen dos versiones de Translate: una función y un procedimiento. La función devuelve una ristra, S, de la misma longitud que Source, tal que S(I)es el carácter que corresponde a Source(I) según la equivalencia establecida por Mapping. El procedimiento es equivalente a: Source := Translate(Source, Mapping);. Para utilizarlos hay que incluir las librerías que correspondan según el tipo de ristra (Ada.Strings.Fixed, Ada.Strings.Bounded, Ada.Strings.Unbounded).

Sintaxis

En lo que sigue, el tipo Ristra representa uno de los tres tipos de ristras, según corresponda.

function Translate (Source  : in Ristra;
                    Mapping : in Mapa_de_Caracteres)
  return Ristra;

procedure Translate (Source  : in out Ristra;
                     Mapping : in Mapa_de_Caracteres);

Mapa_de_Caracteres ::=
    Maps.Character_Mapping
  | Maps.Character_Mapping_Function

Ejemplo

-- En Ada.Strings están definidas algunas constantes
-- como Inside, Outside y Backward.
with Ada.Strings;           use Ada.Strings
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
-- En Strings.Maps se encuentra la función To_Mapping 
with Ada.Strings.Maps;      use Ada.Strings.Maps;
...

Din1, Din2 : Unbounded_String;
P   : Integer;
...

Din1 := To_Unbounded_String ("Universidad de Las Palmas de Gran Canaria");
Din2 := Translate (Din1, To_Mapping ("aeiou", "12345"));  
   --  Din2 = "Un3v2rs3d1d d2 L1s P1lm1s d2 Gr1n C1n1r31"
Créditos