comp.lang.ada
 help / color / mirror / Atom feed
From: Marin David Condic <mcondic.nospam@acm.org>
Subject: Re: Strings
Date: Fri, 22 Dec 2000 11:35:15 -0500
Date: 2000-12-22T16:33:34+00:00	[thread overview]
Message-ID: <3A4382C2.2595414@acm.org> (raw)
In-Reply-To: 3A4362BD.8E156868@vdu.org

You'll want to investigate Ada.Strings.Unbounded. This lets you declare strings
that are fully dynamic and can shrink/grow as you need it. It is not as efficient
as Ada.Strings.Bounded (static allocation of a maximum size) or the plain vanilla
type String, but unless you're operating in real time, this probably won't matter
much.

In Ada83, strings were essentially like C strings - a static array of characters.
There weren't many utility routines to deal with them except the home grown
variety. Ada95 retained this String type, but extended it to give you more choices
about how to handle things and more utilities to do work for you. Most of the
language still has parameters that require a String type, but it's simple enough
to convert as you need to.

My typical strategy is to read in whatever string data I need (using Text_IO or
whatever else makes sense) and immediately convert to Unbounded_String for
internal use. When it has to go out again, you just use the To_String function to
get the data back to the correct data type for output. Once you get used to the
subprograms and types involved, it isn't very hard at all.

MDC

Jef Kelmo wrote:

> Hello,
>
>     What I want is to figure how to get something like the C++ strings class,
> where I can have strings of various sizes, eventually building an array of
> strings. But I'm having trouble with a simple string itself. In C++, you have
> the string.length which goes to the null character, but from what I can
> figure, there is not the same thing in Ada. Is this true?
>
>     Anyway, what I would like, as I mentioned, is to be able to create an
> array of strings that I can feed, after its creation, with data and be able to
> spit it back out to the screen with some simple way for it to understand the
> length of each string. I found the Get_Line(Input, String, Last) thing, but do
> I really have to keep track of that length for hundreds of strings?
>
>     Thanks.
>
> Jef
>
> "Beard, Frank" wrote:
>
> > Jef,
> >
> > >    I just want a usable string. How would I change the above code to do
> > > this? And could someone please point me to a site that gives actual,
> > > concrete examples of simple string use?
> >
> > While Ada.Strings.Bounded has some useful features, it goes a little beyond
> > "simple" strings.

--
======================================================================
Marin David Condic - Quadrus Corporation - http://www.quadruscorp.com/
Send Replies To: m c o n d i c @ q u a d r u s c o r p . c o m
Visit my web site at:  http://www.mcondic.com/

    "Giving money and power to Government is like giving whiskey
    and car keys to teenage boys."

        --   P. J. O'Rourke
======================================================================





  parent reply	other threads:[~2000-12-22 16:35 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-21 21:09 Strings Beard, Frank
2000-12-22 14:19 ` Strings Jef Kelmo
2000-12-22 14:49   ` Strings Larry Kilgallen
2000-12-22 16:35   ` Marin David Condic [this message]
2000-12-23 21:04   ` Strings Georg Bauhaus
  -- strict thread matches above, loose matches on Subject: below --
2000-12-21 17:45 Strings Jef Kelmo
2000-12-21 18:01 ` Strings Jef Kelmo
2000-12-21 18:47 ` Strings mark_lundquist
2000-12-21 18:47 ` Strings mark_lundquist
2000-12-21 23:31   ` Strings gdemont
2000-12-21 19:03 ` Strings David C. Hoos, Sr.
2000-05-27  0:00 Strings Karlene
2000-05-27  0:00 ` Strings Robert Dewar
2000-05-27  0:00 ` Strings MaggieJohn
2000-05-28  0:00   ` Strings Robert Dewar
2000-06-03  0:00     ` Strings Robert I. Eachus
2000-05-27  0:00 ` Strings David C. Hoos, Sr.
2000-05-27  0:00 ` Strings Robert Dewar
1995-01-25 15:08 Strings Ray Toal
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox