Avatar billede lmdthel Nybegynder
06. april 2005 - 14:29 Der er 3 kommentarer

Perl: Formater output pænt

hej Rødder

jeg har noget data jeg printer til stdout, men jeg vil gerne have det formateret pænt i rækker og kolonner.

Formater er 5 kolonner, og så x antal rækker, men når data enten mangler i en kolonne, eller det er 2 karakterer eller 10, så skrider det lidt.

Nogle der har en ide?

///Thomas
Avatar billede lmdthel Nybegynder
06. april 2005 - 14:30 #1
Det er forresten på win32, så Data:Showtable kan ikke bruges :-(
Avatar billede xohp Nybegynder
28. juni 2005 - 22:45 #2
den nemmeste måde er at bruge printf, den er i perl stort set identisk med C versionen...
her er et eksempel, så må du selv kunne se hvordan man stiller flere kolonner op.
Ønsker du mere dokumentation kan du på linux skrive "man 3 printf"

enjoy
---8<-----------------------------------------------------------------
#!/usr/bin/perl
my %strings = (
    dette => 'er en',
    test => 'der viser',
    hvordan => 'printf virker'
);

# find den laengste key
my $maxkeylength = 0;
foreach (keys(%strings)) {
    if (length($_) > $maxkeylength) { $maxkeylength = length($_); }
}

# stil det op så forskellen kan ses
# (concatenation er kun brugt for at kunne have varabler i den første streng;
# egentlig kommer der til at stå "%-7s %s\n")
foreach (keys(%strings)) {
    printf('%-'.($maxkeylength).'s %s'."\n",$_,$strings{$_});
}
Avatar billede lmdthel Nybegynder
29. juni 2005 - 18:12 #3
Det ser fornuftigt ud, det proever jeg, hvis du ligger et svar..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester