On 2023-05-05 11:51, Daniel Gaudry wrote:
>
> Ada.Text_Io.Put_Line(" 05 10 15 20 25 30 35 40 45 50 55 65 70 75 80 85 90");
> Ada.Text_Io.Put_Line(" ....|....!....|....!....|....!....|....!....|....!....|....!....|....!....|....!....|....!");
> Ada.Text_Io.Put_Line("»" & Data & "« " & Data'Last'Img);
As Kazakov pointed out, your scale is incorrect.
However, it's important to remember that 'Last is not necessarily the same as
'Length because 'First is not necessarily one. This is especially important in
subprograms that take String parameters, as they are often passed slices.
Some questions:
> Double_Quote : constant String(1 .. 1) := (others => '"' );
ARM 2.1(15/3)
(
http://www.ada-auth.org/standards/aarm12_w_tc1/html/AA-2-1.html#I1199) defines
the name of '"' as "quotation mark". Why do you refer to a single quotation mark
as Double_Quote?
> Data : constant String := " PLUS_STRING : CONSTANT STRING(1..3) :=(1 =>'" & Double_Quote & "' , 2 =>'+' , 3 =>'" & Double_Quote & ");";
Wouldn't it be simpler and clearer to write this as
Data : constant String := " PLUS_STRING : CONSTANT STRING := " & '"' & '+' & '"';
? Note also that you seem to be missing an apostrophe (''') before the right
parenthesis if you intend Data to be a valid Ada declaration.
--
Jeff Carter
"All citizens will be required to change their underwear
every half hour. Underwear will be worn on the outside,
so we can check."
Bananas
29