#!/usr/bin/perl ##################################################### # Umbruch.pl # # Erstellt aus einem Textfile mit folgendem Format: # # # # ; # # # # Eine schön umgebrochene Text-Tabelle. Die Ausgabe-# # Datei heißt dann "Tabelle". # # # # (c) Martin Holz # # # ##################################################### print "\n1\. Geben Sie den Pfad zur umzuwandelnden Datei ein: "; my $file_name = ; chomp $file_name; my $outfile_name = "$file_name\.Tabelle"; open (INPUT, "<$file_name"); my @file_content = ; close (INPUT); my @ausdruck; my @erklaerung; my $max_line_length = 80; foreach (@file_content) { my @lines = split(/;/,$_); push (@ausdruck, $lines[0]); push (@erklaerung, $lines[1]); } # # sucht den längsten Eintrag für die erste Spalte # my $col_a = 10; foreach (@ausdruck) { if (length $_ > $col_a) { $col_a = length $_; } } # # erstellt die Tabelle # my $cnt = -1; my $col_b = $max_line_length - $col_a + 1; open (OUTFILE, ">$outfile_name"); foreach (@ausdruck) { $cnt++; my $diff_length = $col_a - (length $_); print OUTFILE ("$_ "); while ($diff_length > -1) { $diff_length--; print OUTFILE (" "); } if (length $erklaerung[$cnt] > $col_b) { my $diff_length = (length $erklaerung[$cnt]) - $col_b; my @col_b_line = split(/ /, $erklaerung[$cnt]); my $line_length = 0; foreach (@col_b_line) { $line_length = $line_length + 1 + (length $_); if ($line_length < $col_b) { print OUTFILE ("$_ "); } else { print OUTFILE "\n"; for (my $i = 0; $i < ($col_a +2 ); $i++) { print OUTFILE (" "); } print OUTFILE ("$_ "); $line_length = 0; } } } else { print OUTFILE ("$erklaerung[$cnt]"); } print OUTFILE ("\n"); } close (OUTFILE); print "2. Die Datei wurde unter \"$outfile_name\" gespeichert.\n"; print "\n";