comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: text_io and grid printing
Date: Thu, 17 May 2018 17:55:01 +0200
Date: 2018-05-17T17:55:01+02:00	[thread overview]
Message-ID: <pdk8km$9kq$1@gioia.aioe.org> (raw)
In-Reply-To: 99bb4ea5-89be-4984-8785-574cb8e4a410@googlegroups.com

On 2018-05-17 16:51, Mehdi Saada wrote:
> I wanted to use set_col and set_line to print things as in a grid, (to print a matrix) but it seems I was wrong ?
> Set_Col (1); Put ("1"); Set_Col (2); Put ("2"); Set_Col (3); Put ("3");
> Gives "123"
> but Set_Col (2); Put ("2"); Set_Col (1); Put ("1"); Set_Col (3); Put ("3");
> gives
>   2
> 1 3
> 
> Is there something with linux' implementation ? How do you use to print things like a grid in a portable ? Are you forced to use some complicated curse-like library for that ?

No. You need string formatting. Try this:
------------------------------------------------
with Ada.Text_IO;            use Ada.Text_IO;
with Strings_Edit;           use Strings_Edit;
with Strings_Edit.Integers;  use Strings_Edit.Integers;

procedure Test is
    Line    : String (1..80);
    Pointer : Integer;
begin
    Pointer := Line'First;
    Put (Destination => Line, Pointer => Pointer, Value => 1, Field => 
8, Justify => Right);
    Put (Destination => Line, Pointer => Pointer, Value => 2, Field => 
8, Justify => Right);
    Put (Destination => Line, Pointer => Pointer, Value => 3, Field => 
8, Justify => Right);
    Put_Line (Line (Line'First..Pointer - 1));
    Pointer := Line'First;
    Put (Destination => Line, Pointer => Pointer, Value => 4, Field => 
8, Justify => Right);
    Put (Destination => Line, Pointer => Pointer, Value => 5, Field => 
8, Justify => Right);
    Put (Destination => Line, Pointer => Pointer, Value => 6, Field => 
8, Justify => Right);
    Put_Line (Line (Line'First..Pointer - 1));
end Test;
---------------------------------------------------
This prints:
        1       2       3
        4       5       6

Of course you can place fields in any order by setting Pointer to the 
beginning of the field.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  parent reply	other threads:[~2018-05-17 15:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-17 14:51 text_io and grid printing Mehdi Saada
2018-05-17 15:01 ` Mehdi Saada
2018-05-17 15:20 ` J-P. Rosen
2018-05-17 15:55 ` Dmitry A. Kazakov [this message]
2018-05-17 16:14 ` Mehdi Saada
2018-05-17 16:24   ` Dmitry A. Kazakov
2018-05-17 17:24     ` Mehdi Saada
2018-05-17 18:22       ` Dmitry A. Kazakov
2018-05-17 16:43 ` Jeffrey R. Carter
2018-05-17 18:57   ` Niklas Holsti
replies disabled

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