From: NiGHTS <nights@unku.us>
Subject: Re: Assembling Complex Strings Containing Carriage Returns Prior to Using Ada.Text_IO.Put?
Date: Wed, 22 Oct 2014 10:16:45 -0700 (PDT)
Date: 2014-10-22T10:16:45-07:00 [thread overview]
Message-ID: <2a530b7a-cc6a-4a47-a7b4-51608d785508@googlegroups.com> (raw)
In-Reply-To: <a3632ab2-347a-4c42-847d-40b054ab2e2c@googlegroups.com>
On Wednesday, October 22, 2014 2:20:35 AM UTC-4, mockturtle wrote:
> On Wednesday, October 22, 2014 7:57:39 AM UTC+2, NiGHTS wrote:
>
> > I am converting some code from C to Ada which involves building a complex string containing '\n' characters which would eventually be displayed on the standard output console using the printf() function.
>
> >
>
> >
>
> >
>
> > I tried to copy the same strategy of building the string in Ada like this:
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Complex_String : Ada.Strings.Unbounded.Unbounded_String;
>
> >
>
> > EOL : String := ASCII.CR'Img;
>
> >
>
> >
>
> >
>
> > ...
>
> >
>
> >
>
> >
>
> > Ada.Strings.Unbounded.Append (Complex_String,
>
> >
>
> > "Menu Title" & EOL &
>
> >
>
> > "-------------------------------------" & EOL
>
> >
>
> > );
>
> >
>
> >
>
> >
>
> > ...
>
> >
>
> >
>
> >
>
> > Ada.Text_Io.Put (
>
> >
>
> > Ada.Strings.Unbounded.To_String( Complex_String ) );
>
> >
>
> > Instead of breaking the line in the places where EOL has been inserted, it seems to show the letters "CR" in its place.
>
> >
>
> > The searches I performed on Google seem to be void of any hints on how to get this working. I can't imagine that I am the only one with this requirement in Ada.
>
> >
>
> > Thanks in advance for your advice.
>
>
>
> Do not use 'Img (that, by the way, I guess it is a GNAT extension). Just do this
>
>
>
> EOL : String := "" & ASCII.CR;
>
>
>
> or this
>
>
>
> EOL : String(1..1) := (1 => ASCII.CR);
>
>
>
> These funny syntaxes are necessary if you want EOL to be a string, since CR is a character.
>
>
>
> I think that in your case this would work too
>
>
>
> EOL : constant Character := ASCII.CR;
Thank you for your help. This is the version that eventually worked for me:
EOL : String(1..2) := (1 => Ada.Characters.Latin_1.CR, 2 => Ada.Characters.Latin_1.LF) ;
next prev parent reply other threads:[~2014-10-22 17:16 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-22 5:57 Assembling Complex Strings Containing Carriage Returns Prior to Using Ada.Text_IO.Put? NiGHTS
2014-10-22 6:20 ` mockturtle
2014-10-22 6:28 ` Ludovic Brenta
2014-10-22 8:12 ` mockturtle
2014-10-22 14:36 ` Maciej Sobczak
2014-10-22 14:55 ` Dmitry A. Kazakov
2014-10-24 1:35 ` Keith Thompson
2014-10-22 16:01 ` Shark8
2014-10-22 16:50 ` Jeffrey Carter
2014-10-22 18:59 ` Simon Wright
2014-10-22 23:45 ` Dennis Lee Bieber
2014-10-23 11:38 ` G.B.
2014-10-23 16:22 ` Shark8
2014-10-22 17:32 ` Adam Beneschan
2014-10-22 17:55 ` NiGHTS
2014-10-22 17:16 ` NiGHTS [this message]
2014-10-22 6:25 ` Jeffrey Carter
2014-10-22 17:39 ` NiGHTS
2014-10-22 11:16 ` Björn Lundin
2014-10-22 17:44 ` Adam Beneschan
2014-10-22 17:47 ` Adam Beneschan
2014-10-22 18:01 ` NiGHTS
2014-10-22 22:34 ` Shark8
2014-10-22 23:32 ` Adam Beneschan
2014-10-24 2:45 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox