comp.lang.ada
 help / color / mirror / Atom feed
From: "Vinzent Hoefler" <0439279208b62c95f1880bf0f8776eeb@t-domaingrabbing.de>
Subject: Re: Length of unbounded_string.
Date: Sun, 16 Oct 2011 12:14:37 +0200
Date: 2011-10-16T12:14:37+02:00	[thread overview]
Message-ID: <op.v3fv2novlzeukk@jellix.jlfencey.com> (raw)
In-Reply-To: 4e9a9a6d$0$3238$703f8584@news.kpn.nl

ldries46 wrote:

> In my program I use unbounded_string str
>
> I want to change the last character of the string using the program lines
>
> 2205  len := Length(str);
> 2206  Replace_Slice(str, len, len, "G");

This seems correct to me. Although I am not sure, where ARM A4.3(74.1/1) would
lead us here. ;)

> Then I get the following message printed in my exception part of the program
>
> Error type    : CONSTRAINT_ERROR
> In phase      : Step 1
> in function   : Continuation
> Error info    : trans2ada.adb:2206 range check failed
>
> file line nr  :  1
> Original line : /* GtkPrintJob
> Next line     :  * Copyright (C) 2006 John (J5) Palmieri  <johnp@redhat.com>
>
> In this print out the Original line represents "str".
>
> Is there a problem with the Length function or do I interpret something
> wrong?

Well, I can't reproduce the problem here. Test code was:

-- 8< --
     X := Ada.Strings.Unbounded.To_Unbounded_String ("ABCD");
     Y := Ada.Strings.Unbounded.Length (X);

     Ada.Strings.Unbounded.Replace_Slice (Source => X,
                                          Low    => Y,
                                          High   => Y,
                                          By     => "Z");
     Ada.Text_IO.Put_Line (Ada.Strings.Unbounded.To_String (X));
-- 8< --

It correctly prints "ABCZ".

Same compiler version, so it seems something is wrong in your part of the
code.

First thing that comes to mind is that maybe the string in question does not
have a lower bound of 1, but that's close to impossible with Unbounded_String.

Another idea: Maybe, the string's last character is a null character and
somethings gets garbled on the way between the C- and the Ada-world?


Vinzent.

-- 
f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng.



  parent reply	other threads:[~2011-10-16 10:15 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-16  8:48 Length of unbounded_string ldries46
2011-10-16  9:59 ` Niklas Holsti
2011-10-16 12:06   ` ldries46
2011-10-16 12:52   ` ldries46
2011-10-16 13:00     ` Niklas Holsti
2011-10-17  7:39       ` ldries46
2011-10-17 19:49         ` Niklas Holsti
2011-10-18 11:47           ` ldries46
2011-10-18 17:54             ` Niklas Holsti
2011-10-19  2:38               ` ldries46
2011-10-19  6:07                 ` Niklas Holsti
2011-10-24 15:10                   ` ldries46
2011-10-19  6:37                 ` Simon Wright
2011-10-19 14:48                 ` Alex Mentis
2011-10-24 17:04                   ` ldries46
2011-10-16 10:14 ` Vinzent Hoefler [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-10-25  9:37 ldries46
2011-10-25 17:57 ` Jeffrey Carter
2011-10-28  2:54   ` ldries46
2011-10-28  4:55     ` Jeffrey Carter
2011-10-25 20:23 ` Vadim Godunko
2011-10-25 21:28   ` Simon Wright
2011-10-26  4:41     ` Simon Wright
2011-10-26 22:47     ` Randy Brukardt
2011-10-27  8:05       ` AdaMagica
2011-10-27  8:56       ` Simon Wright
2011-10-27 11:05         ` Brian Drummond
2011-10-28  3:12           ` ldries46
     [not found]           ` <4eafc489$0$3081$703f8584@textnews.kpn.nl>
2011-11-01 18:22             ` Jeffrey Carter
2011-10-27 11:28         ` Georg Bauhaus
2011-10-27 12:17           ` Dmitry A. Kazakov
2011-10-27 13:31             ` Georg Bauhaus
2011-10-27 14:34               ` Dmitry A. Kazakov
replies disabled

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