On 9 fév, 13:47, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
> animatri...@gmail.com writes:
> > On 9 fév, 06:27, "Jeffrey R. Carter"
> > <spam.jrcarter....@acm.nospam.org> wrote:
> >> animatri...@gmail.com wrote:
>
> >> > Type Name is new string (1..15);
>
> >> > NC : Name;
>
> >> > if (i > 15) then NC := "Error";
>
> >> NC'Length = 15; "Error" n'a que 5 Characters.
>
> > L'erreur ne vient pas de là, bien que je l'ai corrigée (idem pour le
> > elsif).
>
> C'est un autre exemple de la même erreur.
>
> > raised CONSTRAINT_ERROR : conversion.adb:30 length check failed
>
> > Ligne 30 : s := Ada.Strings.Unbounded.To_String(Str);
>
> s est déclarée comme String (1 .. 15) mais Str a une longueur qui
> dépend de ce que l'utilisateur tape au clavier.
>
> --
> Ludovic Brenta.
D'accord, je comprends.
Sauf que je suis obligé d'indiquer un RANGE pour s, sinon ADA cri.
Sinon, est-ce que la solution de ne pas utiliser
Ada.Strings.Unbounded.To_String(Str) avec s
et de faire un
while (j /= i) loop
NC(j) := str(j);
j := j + 1;
end loop;
est valable ?
Mais, cela me retourne un "array type required in indexed component"
Merci pour l'aide :)