Leser: 1
4 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw/fatalsToBrowser/;
my $q = new CGI;
open (FILE, "<namensliste.dat") or die "Kann namensliste.dat nicht oeffnen $!\n";
my @table = map { chomp; [split(/\|/, $_)]; } (<FILE>);
close FILE;
my @sorted_table = sort {$a->[1] cmp $b->[1]} @table;
print $q->header, $q->start_html, "<table border='1'>\n";
print "<tr><td>$_</td></tr>\n" for (map {join "</td><td>", @$_} @sorted_table);
print "</table>\n", $q->end_html;
exit;
Quote1|Walter|Helmut|2004.02.02|Deutschland|M
2|Meyer|Lisa|2003.12.28|Deutschland|W
3|Müller|Maximilian|2002.05.22|Schweiz|M
4|Lehmann|Hubert|2002.11.01|Oesterreich|M
5|Schulze|Stefanie|2004.01.04|Deutschland|W
6|Wolter|Willy|2002.06.09|Oesterreich|M
7|Thomas|Eva-Maria|2004.01.17|Schweiz|W
8|Schneyder|Jean|2001.09.04|Frankreich|M
9|Clerc|Pascale|2002.11.17|Frankreich|M
10|Benguerel|Sebastian|2003.08.10|Spanien|M
11|Carl|Johanna|2002.10.01|Deutschland|W
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/perl
#Fehlerausgabe an Browser
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
# Datei auslesen
open (DATEI, "<namensliste.dat") or die "Kann namensliste.dat nicht oeffnen $!\n";
flock (DATEI, 2);
my @namen = <DATEI>;
close DATEI;
# Dateiinhalt sortieren nach Nachnamen
my @sortiertes_array = sort sortabc(@namen);
# Zeilenzahl festellen
my $anzahl = scalar(@sortiertes_array);
# Teilen durch 2
my $halb = int($anzahl / 2);
# Wenn 2 mal die Hälfte nicht $anzahl, 1 addieren
if (2 * $halb < $anzahl) {
$halb += 1;
}
# Tabellenkopf
print qq~
<table cellspacing="2" cellpadding="2" border="1">
~;
# Zähler (optional)
my $halbcount1 = 0;
my $halbcount2 = $halb;
foreach my $z (0..$halb-1) {
# Gesamtarray in zu Teilarrays (@erste - @zweite) zuweisen
my @erste = @sortiertes_array[0...$halb-1];
my @erste_spalte = split(/\|/, $erste[$z]);
my @zweite = @sortiertes_array[$halb...$anzahl-1];
my @zweite_spalte = split(/\|/, $zweite[$z]);
$halbcount1++;
$halbcount2++;
# Ausgabe
if ($halbcount1 <= $halb && $zweite_spalte[1] ne '') {
print qq~<tr>
<td>$halbcount1</td>
<td><b>$erste_spalte[1]</b> $erste_spalte[2]</td>
<td>$halbcount2</td>
<td><b>$zweite_spalte[1]</b> $zweite_spalte[2]</td>
</tr>
~;
}
elsif ($zweite_spalte[1] eq '') {
print qq~<tr>
<td>$halbcount1</td>
<td><b>$erste_spalte[1]</b> $erste_spalte[2]</td>
<td> </td>
<td> </td>
</tr>
~;
}
}
print "</table>";
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Sortiersubroutine
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub sortabc {
@atopkg = split(/\|/,$a);
@btopkg = split(/\|/,$b);
$atopkg[1] cmp $btopkg[1];
}
4 Einträge, 1 Seite |