Perl-Script zum Erstellen von Wiki-Tabellen

Foruminternes: Ankündigungen, Bekanntmachungen, Spielregeln
Antworten
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Perl-Script zum Erstellen von Wiki-Tabellen

Beitrag von nufan » Di Jun 05, 2012 12:41 pm

Aus einer Programmausgabe eine Tabelle zu erstellen ist relativ aufwendig. Deswegen hab ich mir heute einen kleinen Perl-Script dazu geschrieben:

Code: Alles auswählen

#/usr/bin/env perl
use strict;

my $first = 1;
while(<>) {
  if($first) {
    $first = 0;
    print "\n\n| ^ ";
    for(split) {
      print $_ . " ^ ";
    }
  }
  else {
    print "^";
    for(split) {
      print " " . $_ . " |";
    }
  }
  print "\n";
}
Der Code erstellt aus einer durch Leerzeichen getrennten Eingabe, z.B.:

Code: Alles auswählen

    0  1  2  3  4  5  6  7  8  9 
 0 -1 -1 -1 -1 -1 -1  0  0  0  0 
 1 -1 -1 -1 -1 -1  0  0  0  0  0 
 2 -1 -1 -1 -1 -1  0  0  0  0  0 
 3 -1 -1 -1 -1 -1 -1  0  0  0  0 
 4 -1 -1 -1 -1 -1  0  0  0  0  0 
 5 -1 -1 -1 -1 -1 -1  0  0  0  0 
 6 -1 -1 -1 -1  0  0  0  0  0  0 
 7 -1 -1 -1 -1 -1  0  0  0  0  0 
 8 -1 -1 -1 -1 -1 -1  0  0  0  0 
 9 -1 -1 -1 -1 -1  0  0  0  0  0 
10 -1 -1 -1 -1 -1  0  0  0  0  0 
11 -1 -1 -1 -1 10  5  0  0  0  0 
12 -1 -1 -1 -1 10 10 10  0  0  0 
13 -1 -1 -1 -1 -1 -1 10  0  0  0 
14 -1 -1 -1 10 10 10 10  0  0  0 
15 -1 -1 -1 -1 -1 20 20 20 20  0 
16 -1 -1 -1 -1 20 20 20 20 20  0 
17 -1 -1 -1 -1 20 20 20 20 20  0 
18 -1 -1 -1 -1 -1 -1 -1 20 20  0 
19 -1 -1 -1 20 20 20 20 20 20  0 
20 -1 -1 20 20 20 20 20 20 20  0 
21 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
22 -1 -1 -1 -1 20 20 20 20 20  0 
23 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
24 -1 -1 -1 25 20 20 20 20 20  0 
25 -1 30 30 30 30 20 20 20 20  0 
26 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
27 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
28 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
29 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 
30 38 38 37 37 37 37 37 37 20 20
Eine Wiki Tabelle, bei der die erste Zeile und die erste Spalte hervorgehoben werden:

Code: Alles auswählen

| ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ 
^ 0 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 |
^ 1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 2 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 3 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 |
^ 4 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 5 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 |
^ 6 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 | 0 |
^ 7 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 8 | -1 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 |
^ 9 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 10 | -1 | -1 | -1 | -1 | -1 | 0 | 0 | 0 | 0 | 0 |
^ 11 | -1 | -1 | -1 | -1 | 10 | 5 | 0 | 0 | 0 | 0 |
^ 12 | -1 | -1 | -1 | -1 | 10 | 10 | 10 | 0 | 0 | 0 |
^ 13 | -1 | -1 | -1 | -1 | -1 | -1 | 10 | 0 | 0 | 0 |
^ 14 | -1 | -1 | -1 | 10 | 10 | 10 | 10 | 0 | 0 | 0 |
^ 15 | -1 | -1 | -1 | -1 | -1 | 20 | 20 | 20 | 20 | 0 |
^ 16 | -1 | -1 | -1 | -1 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 17 | -1 | -1 | -1 | -1 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 18 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | 20 | 20 | 0 |
^ 19 | -1 | -1 | -1 | 20 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 20 | -1 | -1 | 20 | 20 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 21 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 22 | -1 | -1 | -1 | -1 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 23 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 24 | -1 | -1 | -1 | 25 | 20 | 20 | 20 | 20 | 20 | 0 |
^ 25 | -1 | 30 | 30 | 30 | 30 | 20 | 20 | 20 | 20 | 0 |
^ 26 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 27 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 28 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 29 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
^ 30 | 38 | 38 | 37 | 37 | 37 | 37 | 37 | 37 | 20 | 20 |
Eingabe wird durch EOF (Strg+d auf Linux) abgebrochen.
Dachte vllt kann das außer mir noch jemand brauchen ^^

Antworten