Thread zentrierte Darstellung mit printf möglich? (20 answers)
Opened by Duff at 2007-09-19 13:41

sid burn
 2007-09-19 15:26
#99675 #99675
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
renee+2007-09-19 13:12:52--
stimmt, da ich nicht mit format arbeite (habe eine unerklärliche Abneigung dagegen), denke ich da nicht dran...

So wie es in Perl5 eingebaut ist habe ich dagegen auch irgendwie ne Abneigung, aber so wie es in Perl6 implementiert werden soll ist es ziemlich gut. Auch die Möglichkeiten mit Perl6::Form sind ziemlich mächtig. Was damit alles geht möchte ich nicht mit (s)printf() anweisungen nachbauen. Perl6::Form finde ich ziemlich gut, aber auch noch wenig damit gemacht. Aber oberes Beispiel mal mit Perl6::Form.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl
use strict;
use warnings;
use Perl6::Form;

my @values = (
    [ 1, 1,    'value1' ],
    [ 2, 20,   'value2' ],
    [ 3, 2000, 'value3' ],
);

print form "+---------+-----------+-----------+",
           "|  Wert1  |   Wert2   |   Wert3   |",
           "+---------+-----------+-----------+";

for my $value ( @values ) {
    print form "| {<<<<<} | {|||||||} | {>>>>>>>} |",
               $value->[0], $value->[1], $value->[2],
}

print form "+---------+-----------+-----------+";


Vielleicht geht es aber noch einfacher in einem Befehl ohne for Schleife. Man kann nämlich auch gleich Arrays etc. richtig ausgeben lassen. Ungefähr so:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
use Perl6::Form;

my @werte1 = qw( 1 2 3 );
my @werte2 = qw( 2 20 2000 );
my @werte3 = qw( value1 value2 value3 );

print form "+---------+-----------+-----------+",
           "|  Wert1  |   Wert2   |   Wert3   |",
           "+---------+-----------+-----------+",
           "| {[[[[[} | {IIIIIII} | {]]]]]]]} |",
              \@werte1, \@werte2,   \@werte3    ,
           "+---------+-----------+-----------+";
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread zentrierte Darstellung mit printf möglich?