Jutta Rosenbach: CGI - Hilfe bei einem fast ganzen Skript erbeten

Beitrag lesen

Hallo CGI-Fachleute,

Das Skript soll:

  • eine Datenbank (termine.csv) auslesen,
  • die Datensaetze nach Datum und Uhrzeit sortieren
  • und in eine neue Datei schreiben.

Ich hatte zum Sortieren in der termine.csv Datum und Zeit zerlegt in
Jahr;Monat;Tag;Stunde;Minute;
----------------------------------------------------
open(TERMINEDAT, ">../../kalender/termine.js");
  print TERMINEDAT "var arraycount=0\n";

for(@SortierteListe)
   {
    @Datensatz = split(/;/,$_);
    $i = 0;
    for(@Datensatz)
     {
      if ($i == 0)    {$Jahr   = $Datensatz[$i];}
      elsif ($i == 1) {$Monat  = $Datensatz[$i];}
      elsif ($i == 2) {$Tag    = $Datensatz[$i];}
      elsif ($i == 3) {$Stunde = $Datensatz[$i];}
      elsif ($i == 4) {$Minute = $Datensatz[$i];}
      elsif ($i == 10)
        {
print TERMINEDAT "arraycount += 1\n";
print TERMINEDAT "terminArray[arraycount] =
"$Tag.$Monat.$Jahr"\n";

print TERMINEDAT "zeitArray\[arraycount\] \=  

"$Stunde:$Minute"\n";
        }
       else
         {
           print TERMINEDAT "$Datenfelder[$i] = $Datensatz[$i]\n";
         }
----------------------------------------------------
Das funzte nicht und ich erfuhr, dass das Skript die Datensaetze nur
nach dem ersten Feld, dem Jahr sortiere und dann aufhoert.

Ich koenne den String aber in der Sortierfunktion zerteilen, und
dann die Einzelwerte untersuchen.
------<snipp>-------------<snipp>-------------<snipp>-------------<s
nipp>--
sub NummernSort
  {
    @DatensatzA = split(/;/,$a);
    @DatensatzB = split(/;/,$b);
    $i = 0;
    $Result = 0;
    while (($i < 6) && ($Result == 0))
    {
        $Result = ($DatensatzA[$i] == $DatensatzB[$i]) if
($DatensatzA[$i] <> $DatensatzB[$i]);
        $i++;
    }
  }
------<snipp>-------------<snipp>-------------<snipp>-------------<s
nipp>--

Leider bin ich diesbezueglich eine Patchworktante - d.h. ICH WEISS
LEIDER NICHT, WAS ICH TUE.
Brauche ich dieses Unterprogramm nun nur irgendwo in mein Skript
dazwischensetzen? Wo?
Ist es schon fertig? Wie rufe ich es auf?
Kurz und klein: wie muss das Skript richtig aussehen, dass es funzt?

ist das ueberhaupt eine Loesung - oder muss alles ganz anders
gemacht werden? Die Felder in der termine.csv kann ich gerne passend
machen: zusammenziehen, andere Reihenfolge o.ae.
Ich will halt zum Schluss einen Veranstaltungskalender haben.

Fuer Deine Hilfe bin ich sehr dankbar.
Viele Gruesse
Jutta
j@rosenbach.com