Bon,
Tu as donc des chaîne de de type :
Pour avoir la valeur d'un type à partir d'une chaîne, c'est toujours l'attribut "value", soit TYPE'value("chaine" ).
Pour convertir ta valeur je pense pas que les espace avant ou après change quelque chose.
Il te faut donc savoir où est le caractère d'unité pour arrêter la chaine.
Pour ça il te faut parcourir la chaîne en testant si le caractère est un digit numéric ou pas.
Là, la fonction Is_Digit dans Ada.Characters.Handling, fera le travail.
Au cas où tu souhaiterais ne récupérer que les caractère différent d'une espace, tu peux utiliser la fonction Index_Non_Blank se trouvant dans la bibliothèque Ada.Strings.Fixed.