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

renee
 2007-09-19 14:12
#99662 #99662
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Duff+2007-09-19 12:00:30--
Danke für die schnelle Antwort, aber kannst du vielleicht noch ein paar Schritte dazu erklären?


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/perl

# das sollte klar sein ;)
use strict;
use warnings;

# hole den Text
chomp( my $text = <STDIN> );

# So breit soll das "Fenster" für den Text insgesamt sein
my $width  = 30;
# berechne den linken rand
my ($rand) = int( ($width - length $text) / 2 );

# das Format:
# %*s  => ein String (%s), dessen Länge erst noch festgelegt werden muss (*)
# %s => der eigentliche Text
# %*s => der rechte Rand, im Prinzip das gleiche wie beim ersten Format-Teil
my $format = ">>%*s%s%*s<<";

# gebe den Text aus...
# übergebe an sprintf folgende Parameter:
# breite des linken Rands (ersetzt das erste *)
# Leerzeichen (als "Text" für den linken Rand)
# der eigentliche Text
# Breite des rechten Rands (ersetzt das zweite *)
# Leerzeichen (als "Text" für den rechten Rand)
print sprintf $format, $rand, ' ', $text, ($width - length($text) - $rand), ' ';



Quote
Wie würde ich das ganze denn realisieren müssen, wenn ich vorhern ein printf benutze, das ungefähr so aussieht:

Code: (dl )
printf("%-10s %06d %20s\n", $variable1, $variable2, $variable3);


z.B. sollen dann die $variable2 zentriert dargestellt werden.


Was willst Du da groß zentriert haben? Zentriert zwischen $variable1 und $variable3? Da würde ich mir ne kleine Funktion bauen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread zentrierte Darstellung mit printf möglich?