Hallo,
heute habe ich feststellen müssen, dass wieder einige Schüler beim
Konvertieren aus den Rohdaten der WinSV-Schuldatenbank nicht übernommen
wurden.
Ich kenne mich mit Perl nicht aus, aber nehme an, dass in dem Script als
Datentrennzeichen das "," verwendet (siehe Zeile 6: @line= split /,/;)?
#!/usr/bin/perl -w
open OUT,">userlist.txt";
print OUT "NACHNAME:VORNAME:GEBURTSTAG:KLASSE\n";
while(<>) {
s/"//g;
@line = split /,/;
$Klasse = $line[52] || $line[53];
$Klasse =~ s/^0//g;
...
Dann ist das Problem klar: die Klasse der jetzt nicht angelegten Schüler
kommen erst nach dem 54 ",", die von anderen Schülern nach dem 52. bzw. 53.
",".
Da ich mir nicht vorstellen konnte, dass eine Datenbank so einen Quatsch
macht, habe ich nachgezählt:
Wenn man als Trennzeichen die " verwendet, stehen die Klasse (anscheinend ;-))
_immer_ zwischen den 52 " ".
Wenn man das Script dahingehend ändert (noch ungetestet) müsste das Ganze dann
funktionieren.
(Herr Varkoly bestätigt das hoffentlich oder schreibt ganz groß
"NEIN -FALSCH!!")
alte Zeilen:
s/"//g;
@line = split /,/;
$Klasse = $line[52] || $line[53];
neue Zeilen:
s/"//g; (hier weiß ich nicht, ob man diese Zeile jetzt weglassen kann :-( )
@line = split /"/;
$Klasse = $line[103];
Anmerkung: 105 deshalb: der Datensatz hat folgende Form
" "," "," " ...,"Klasse"
(und da Klasse zwischen den 52 " " steht, kommen vor der Klasse genau 103 ").
Viele Grüße
Dieter
P.S.: ich komme demnächst bestimmt noch dazu das ganze zu testen.