with TEXT_IO; use TEXT_IO; function GetDiscreet ( when_repeat: STRING := "" ) return Element is read: STRING(1..Element'WIDTH+1); len: NATURAL; begin loop declare begin Get_Line(read,len); if len<=Element'WIDTH then return Element'Value(read(1..len)); else Skip_Line; end if; exception when CONSTRAINT_ERROR => null; end; Put(when_repeat); end loop; end GetDiscreet;