Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1: Ashley | 01033438392 | Wellington, New Zealand | 1987- 4-14
- 2: Aloha | 01087651234 | Hawaii, United States of America | 1988- 9-23
- 3: Jack | 01082840184 | Beijing, China | 1989- 6-19
- printf("%10s | %11s | %20s | %4d-%2d-%2dn",name,phone,address,year,month,day);
- package Integer_IO is new Ada.Text_IO.Integer_IO (Integer);
- procedure Output_Date ( Day : in Integer; Month: in Integer; Year: in Integer) is
- begin
- Integer_IO.Put(Item => Day, Width => 2);
- Text_IO.Put("-");
- Integer_IO.Put(Item => Month, Width => 2);
- Text_IO.Put("-");
- Integer_IO.Put(Item => Year, Width => 4);
- end Output_Date;
- procedure Output_String ( Item : in String;
- Width : in Integer;
- Separator : in String := "|";
- Truncate : Boolean := False) is
- Field_Index : Integer := Text_IO.Col;
- begin
- if Item'length > Width and Truncate then
- Text_IO.Put(Item(1..Width) & Separator);
- else
- Text_IO.Put(Item) & Separator;
- end if;
- Text_IO.Set_Col ( Field_Index + Width + 1 );
- end Output_String;
- Name : String := "Ashley"
- Phone : String := "01033438392"
- Address: String := "Wellington, New Zealand"
- Day : Integer := 14;
- Month : Integer := 4;
- Year : Integer := 1987;
- Output_String(Item=> Name, Width => 10);
- Output_String(Item=> Phone, Width => 11);
- Output_String(Item=> Address, Width => 20);
- Output_Date(Day,Month,Year);
- Fill_Char : Character := ' ';
- function Set_Fill (New_Fill : Character) return String is
- begin
- Fill_Char := New_Fill;
- return "";
- end Set_Fill;
- --// Dumb tail-recursive implementation.
- function Set_Width(Source : in String; Width : in Positive) return String is
- begin
- if Width <= Source'length then --'
- return Source;
- else
- return Fill_Char & Set_Width(Source, Width - 1);
- end if;
- end Set_Width;
- Unfilled_String : constant String := "123456";
- Filled_String : constant String := Set_Width(Unfilled_String & Set_Fill('0'), 8);
- --// The above string should end up being "00123456"
- function Label (J : Integer) return String is
- use Ada.Strings; use Ada.Strings.Fixed;
- Lower : String := Integer'Image(J * Bin_Size);
- Upper : String := Integer'Image((J + 1) * Bin_Size);
- begin
- return Tail(Trim(Lower, Left), 4, '0') & "-" &
- Tail(Trim(Upper, Left), 4, '0') & " |*";
- end Label;
- Distribution of lengths:
- 0000-0100 |**********
- 0100-0200 |*****************************
- 0200-0300 |**********************
- 0300-0400 |***************
- 0400-0500 |**********
- 0500-0600 |*******
- 0600-0700 |****
- 0700-0800 |****
- 0800-0900 |**
- 0900-1000 |**
- 1000-1100 |*
- 1100-1200 |*
- Ashley--
- Aloha---
- Jack----
- --Ashley
- ---Aloha
- ----Jack
- 95: Ashley | 0001033438392 | Wellington, New Zeal 2015- 5- 24
- 96: Aloha | 0001087651234 | Hawaii, United State 2015- 5- 27
- 97: Jack | 0001082840184 | Beijing, China 2015- 5- 30
- 1220: Ashley | 0001033438392 | Wellington, New Zeal 2015- 6- 2
- 1221: Aloha | 0001087651234 | Hawaii, United State 2015- 6- 5
- 1222: Jack | 0001082840184 | Beijing, China 2015- 6- 8
- -- This package add support for formatted string as supported by C printf()
- -- A simple usage is:
- --
- -- Put_Line (-(+"%s" & "a string"));
- --
- -- or with a constant for the format:
- --
- -- declare
- -- Format : constant Formatted_String := +"%s";
- -- begin
- -- Put_Line (-(Format & "a string"));
- -- end;
- --
- -- Finally a more complex example:
- --
- -- declare
- -- F : Formatted_String := +"['%c' ; %10d]";
- -- C : Character := 'v';
- -- I : Integer := 98;
- -- begin
- -- F := F & C & I;
- -- Put_Line (-F);
- -- end;
- -- Which will display:
- -- ['v' ; 98]
- -- Each format specifier is: %[flags][width][.precision][length]specifier
- -- Specifiers:
- -- d or i Signed decimal integer
- -- u Unsigned decimal integer
- -- o Unsigned octal
- -- x Unsigned hexadecimal integer
- -- X Unsigned hexadecimal integer (uppercase)
- -- f Decimal floating point, lowercase
- -- F Decimal floating point, uppercase
- -- e Scientific notation (mantissa/exponent), lowercase
- -- E Scientific notation (mantissa/exponent), uppercase
- -- g Use the shortest representation: %e or %f
- -- G Use the shortest representation: %E or %F
- -- c Character
- -- s String of characters
- -- p Pointer address
- -- % A % followed by another % character will write a single %
- -- Flags:
- -- - Left-justify within the given field width;
- -- Right justification is the default.
- -- + Forces to preceed the result with a plus or minus sign (+ or -)
- -- even for positive numbers. By default, only negative numbers
- -- are preceded with a - sign.
- -- (space) If no sign is going to be written, a blank space is inserted
- -- before the value.
- -- # Used with o, x or X specifiers the value is preceeded with
- -- 0, 0x or 0X respectively for values different than zero.
- -- Used with a, A, e, E, f, F, g or G it forces the written
- -- output to contain a decimal point even if no more digits
- -- follow. By default, if no digits follow, no decimal point is
- -- written.
- -- ~ As above, but using Ada style based <base>#<number>#
- -- 0 Left-pads the number with zeroes (0) instead of spaces when
- -- padding is specified.
- -- Width:
- -- number Minimum number of characters to be printed. If the value to
- -- be printed is shorter than this number, the result is padded
- -- with blank spaces. The value is not truncated even if the
- -- result is larger.
- -- * The width is not specified in the format string, but as an
- -- additional integer value argument preceding the argument that
- -- has to be formatted.
- -- Precision:
- -- number For integer specifiers (d, i, o, u, x, X): precision specifies
- -- the minimum number of digits to be written. If the value to be
- -- written is shorter than this number, the result is padded with
- -- leading zeros. The value is not truncated even if the result
- -- is longer. A precision of 0 means that no character is written
- -- for the value 0.
- -- For e, E, f and F specifiers: this is the number of digits to
- -- be printed after the decimal point (by default, this is 6).
- -- For g and G specifiers: This is the maximum number of
- -- significant digits to be printed.
- -- For s: this is the maximum number of characters to be printed.
- -- By default all characters are printed until the ending null
- -- character is encountered.
- -- If the period is specified without an explicit value for
- -- precision, 0 is assumed.
- -- .* The precision is not specified in the format string, but as an
- -- additional integer value argument preceding the argument that
- -- has to be formatted.
Add Comment
Please, Sign In to add comment