comp.lang.ada
 help / color / mirror / Atom feed
From: "Norman H. Cohen" <ncohen@watson.ibm.com>
Subject: Re: Leading zeros with Int_IO.Put()?  Or another package?
Date: 1996/11/06
Date: 1996-11-06T00:00:00+00:00	[thread overview]
Message-ID: <3281088B.24F@watson.ibm.com> (raw)
In-Reply-To: baldwinE0Eq2n.KLB@netcom.com


J.D. Baldwin wrote:
 

> So I added relevant lines of code to CAL.ADB:
> 
>                   if (MINUTE <= 9) then
>                      Int_IO.Put(0, 0);
>                   end if;
>                   Int_IO.Put(MINUTE,0);
> 
> . . . and so forth, for each relevant value.
> 
> My question:  is there a better way to pad out integers with leading
> zeros?  What if I wanted to pad to a width of three or four or sixteen,
> all with zeros?  Is there a standard way to achieve this in Ada?

Using the GNAT-specific 'Img attribute and the standard package
Ada.Strings.Fixed:

   Ada.Strings.Fixed.Move
      (Source  => Minute'Img,
       Target  => Buffer, 
       Justify => Right, 
       Pad     => '0');
   Ada.Text_IO.Put (Buffer);

(where Buffer is a string of the appropriate length, in this case 2). 
Using the standard 'Image attribute (which annoyingly places a space in
front of nonnegative numerals) instead of 'Img to retain portability to
other compilers:

   declare
      Image  : constant String := Minute'Image;
      Buffer : String (1 .. Field_Length);  -- 2 in the case of minutes
   begin
      Ada.Strings.Fixed.Move
         (Source  => Image (2 .. Image'Length),
          Target  => Buffer, 
          Justify => Right, 
          Pad     => '0');
      Ada.Text_IO.Put (Buffer);
   end;

-- 
Norman H. Cohen
mailto:ncohen@watson.ibm.com
http://www.research.ibm.com/people/n/ncohen




  parent reply	other threads:[~1996-11-06  0:00 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-11-05  0:00 Leading zeros with Int_IO.Put()? Or another package? J.D. Baldwin
1996-11-05  0:00 ` David Shochat
1996-11-08  0:00   ` robin
1996-11-08  0:00     ` Robert Dewar
1996-11-10  0:00       ` Verne Arase
1996-11-13  0:00       ` robin
1996-11-13  0:00         ` Ken Garlington
1996-11-19  0:00           ` robin
1996-11-19  0:00             ` Robert Dewar
1996-11-20  0:00             ` Richard A. O'Keefe
1996-11-20  0:00               ` Robert Dewar
1996-11-20  0:00               ` robin
1996-11-20  0:00                 ` Robert Dewar
1996-11-22  0:00                   ` Richard A. O'Keefe
1996-11-25  0:00                   ` shmuel
1996-11-20  0:00                 ` Richard A. O'Keefe
1996-11-22  0:00                   ` robin
1996-11-22  0:00                     ` Richard A. O'Keefe
1996-11-23  0:00                       ` robin
1996-11-20  0:00                 ` Larry J. Elmore
1996-11-25  0:00                   ` robin
1996-11-25  0:00                     ` Robert Dewar
1996-11-26  0:00                     ` Larry J. Elmore
1996-11-21  0:00                 ` Jerry Coffin
1996-11-22  0:00                 ` Ken Garlington
1996-11-20  0:00             ` Norman H. Cohen
1996-11-22  0:00             ` Ken Garlington
1996-11-27  0:00               ` Verne Arase
1996-12-02  0:00                 ` Ken Garlington
     [not found]             ` <56tjrh$4a <MPLANET.3294c204jcoffin989a3e@news.rmi.net>
1996-11-24  0:00               ` Bert
1996-11-13  0:00       ` robin
1996-11-13  0:00         ` Ken Garlington
1996-11-19  0:00           ` robin
1996-11-22  0:00             ` Robert Dewar
1996-11-22  0:00             ` Ken Garlington
1996-11-17  0:00         ` Robert Dewar
1996-11-08  0:00     ` Ken Garlington
1996-11-21  0:00   ` Robert I. Eachus
1996-11-22  0:00     ` robin
1996-11-05  0:00 ` Samuel Tardieu
1996-11-06  0:00 ` Stephen Leake
1996-11-06  0:00 ` Norman H. Cohen [this message]
1996-11-07  0:00   ` Pascal Obry
1996-11-07  0:00     ` Norman H. Cohen
1996-11-08  0:00   ` Norman H. Cohen
1996-11-09  0:00     ` Robert Dewar
1996-11-06  0:00 ` Robert I. Eachus
1996-11-08  0:00   ` Norman H. Cohen
1996-11-08  0:00 ` David Emery
1996-11-24  0:00 ` Fergus Henderson
1996-11-24  0:00   ` Robert Dewar
1996-11-25  0:00     ` J. David Bryan
1996-11-25  0:00     ` Larry Kilgallen
1996-11-27  0:00     ` Verne Arase
1996-11-28  0:00   ` Richard A. O'Keefe
  -- strict thread matches above, loose matches on Subject: below --
1996-12-15  0:00 Robert Dewar
1996-11-05  0:00 Collection of 2500+ links about Object-Orientation - interested ? Manfred Schneider
1996-11-07  0:00 ` Leading zeros with Int_IO.Put()? Or another package? John Herro
1996-11-07  0:00   ` Robert Dewar
1996-11-07  0:00   ` James Rogers
replies disabled

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