Find_Token

Explicación

Find_Token devuelve los índices de inicio (First) y fin (Last) de la primera subristra de Source que cumpla la condición indicada por Test respecto al conjunto Set. Si no existe ninguna subristra que satisfaga la condición, Last toma el valor 0 y First el valor Source'First. Existen versiones de Find_Token para cada uno de los tres tipos de ristras (tamaño fijo, tamaño limitado y tamaño dinámico); para utilizarlas 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.

procedure Find_Token (Source : in Ristra;
                      Set    : in Maps.Character_Set;
                      Test   : in Membership;
                      First  : out Positive;
                      Last   : out Natural);

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_Set() 
with Ada.Strings.Maps;      use Ada.Strings.Maps;

...

Din   : Unbounded_String;
First : Positive;
Last  : Natural;
...

Din := To_Unbounded_String ("Universidad de Las Palmas de Gran Canaria");
Find_Token (Din, To_Set ("aeiou"), Outside, First, Last); --  First = 1, Last = 2  ("Un")
Find_Token (Din, To_Set ("aeiou"), Inside, First, Last);  --  First = 3, Last = 3  ("i")
Find_Token (Din, To_Set ("d a"), Inside, First, Last);    --  First = 9, Last = 13 ("dad d")
Créditos