In your code you have the two lines: > Max_Descripteur : Positive; > subtype Ch_L_Cha�ne is String (1..Max_Descripteur); Which are "elaborated" when the program begins. At this time and ONLY at this time is the value of Max_escripteur used to define the size of the array. Since you have not defined a value for Max_Descripteur when the type Ch_L_Cha�ne is defined the actual size of the array is unpredictable, but likely zero. The functionality you are looking for may be found in either of the two packages: Ada.Strings.Bounded or Ada.Strings.Unbounded I hope this helps, SteveD