Perl, sweet Perl
Jakie to uczucie mrużyć senne oczy, pisząc skrypt w języku, który się ledwo zna? Cudowne i warte niewyspania się.
Pani Całka, nasza Starościna, dostała wyniki ze szmat (u mnie – piąteczka!) w paskudnym formacie:
Nr albumu
Nr grupy
Nazwisko
Imię
lab-max40
wyklad-max60
suma w+l
Ocena
I tak student po studencie. Jak widać, trzeba było zrobić z tego jakąś sensowną tabelkę, bo takie dane, ciurkiem prezentowane, to mogą sobie na informatyce analizować. My, elektronicy, nie mamy parserów w mózgach. Postanowiłem zatem zabawić się Perlem, w którym, jak dotąd, niewiele działałem. Do tego dorzuciłem wyrażenia regularne, bo w nich cały urok tego języka. I tak po kilkudziesięciu minutach googlowania i kodowania narodził się potworek:
#!/usr/bin/perl
# wczytujemy dane:
@wsio=<STDIN>;
# usuwamy puste linie
# oraz "kolumnę" z numerem grupy:
$i=0;
foreach $linia (@wsio) {
if (!($linia=~/^\n|^.*grup.*|^1\n/)) {
$lista[$i++]=$linia;
}
}
# zaczynamy tworzyć tabelę:
print "<table>\n";
$offset=0;
for ($i=0; $i<=$#lista; $i++) {
# trzeba obsłużyć błąd przy studencie
# o indeksie numer 123456:
if ($lista[$i-5]=~/123456\n/) {
print "<td>???</td>";
$offset=1;
}
if (!(($i+$offset)%7)) {
print "<tr>";
}
print "<td>\n$lista[$i]</td>";
if (!(($i+1+$offset)%7)) {
print "</tr>\n";
}
}
print "</table>\n";
który po wywołaniu:
$ ./tabelka.pl <wyniki.txt >wyniki_nowe.html
dał prymitywną i bardzo niesemantyczną (brak sensownych nagłówków) tabelę ;) Musiałem tylko dodać obrzydliwe obejście błędu w danych wejściowych – jeden z kolegów nie miał podanego wyniku sumarycznego.
Heh, mimo wszystko, dumny jestem z siebie. I z Perla.

środa, 5 lipca 2006 @ 13:27
Gratuluje dobrego skryptu…
rzeczywiście – sposób przedstawienia był tragiczny, ale nas odnalazłem i sie ucieszyłem – reszta mnie nie inteeresowała:P
Ale jak ten skrypt to zmienił to BRAWO :P
piątek, 7 lipca 2006 @ 8:22
chciałabym podkreślić, że w takiej właśnie formie otrzymałam te wyniki, co więcej, nie były one jako osobny plik w załączniku tylko w treści maila….