comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Unbounded String to string
Date: Tue, 29 Jun 2010 08:08:45 -0700 (PDT)
Date: 2010-06-29T08:08:45-07:00	[thread overview]
Message-ID: <f25dada0-5997-411e-8c50-c1d44aa1f6f3@b35g2000yqi.googlegroups.com> (raw)
In-Reply-To: dca03224-2112-4b36-bfcc-88890436bd84@y11g2000yqm.googlegroups.com

tonyg wrote on comp.lang.ada:
> On 29 June, 15:33, Adam Beneschan <a...@irvine.com> wrote:
>> On Jun 29, 7:28 am, tonyg <tonytheg...@googlemail.com> wrote:
>
>>> Hi,
>>>    I have an unbounded string from a database I want to turn into a 16
>>> character subtype of string
>>>
>>> i.e. unbounded_string to string(1..16)
>>>
>>> I've been trying to do this most of the afternoon but keep getting
>>> errors
>>>
>>> anyone know how ?
>
>> Declare a subtype to give string(1..16) a name; then call To_String
>> (in Ada.Strings.Unbounded) and convert the function result to your
>> subtype.  E.g.:
>>
>>    subtype String_Length_16 is string(1..16);
>>    V : String_Length_16;
>>
>>    V := String_Length_16 (Ada.Strings.Unbounded.To_String (U));

That solution only works if U happens to contain exactly 16
characters, which is probably not the case if the database really
contains unbounded strings (i.e. VARCHAR or similar). So what you
probably need is something more elaborate along the lines of:

function To_String_16 (U : Ada.Strings.Unbounded.Unbounded_String)
return String_16 is
   Temp : constant String := Ada.Strings.Unbounded.To_String (U);
   Result : String_16;
begin
   Ada.Strings.Fixed.Move (Source => Temp, Target => Result, Drop =>
Ada.Strings.Right,
    Justify => Ada.Strings.Left, Pad => Ada.Characters.Space);
   return Result;
end To_String_16;

(some parameters of Ada.Strings.Fixed.Move have defaults; I spelled
all them out for clarity at the expense of conciseness).

--
Ludovic Brenta.



  reply	other threads:[~2010-06-29 15:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-29 14:28 Unbounded String to string tonyg
2010-06-29 14:33 ` Adam Beneschan
2010-06-29 14:37   ` tonyg
2010-06-29 15:08     ` Ludovic Brenta [this message]
2010-06-29 15:19       ` Adam Beneschan
2010-06-30  8:28         ` tonyg
2010-07-01  7:18 ` Jerry
replies disabled

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