Jens Ellegiers: Wieder mal ne Textdatenbank

Beitrag lesen

Tach auch,

ein kleiner Korrekturvorschlag fuer das Script folgt innerhalb des Scripts.

Hallo Speedy,

normalerweise nimmt Dir hier niemand die Arbeit ab, aber ich hatte gerade Spaß an der Lösung Deines Problems. Die Programmierung ist nicht sonderlich elegant, aber sie funktioniert.

Gruß

»»   Christian Schnagl

PS: Es fehlen noch Abfragen wie "Feld gefunden?", aber einfache IF-Anweisungen kriegst Du hin. Bei der Feldbezeichnung muß auf Groß/Kleinschreibung geachtet werden!

#!/usr/bin/perl
print "Content-type: text/html\n\n";
open(DB, "<test.db"); @satz = <DB>; close DB;

print wert(2,"FELD4");  # Datensatz zwei, Feld 4 ausgeben

sub wert
{

»»   $satznr=$_[0];
»»   $feldname=$_[1];
»»   $tmp=0;

»»   # chop($satz[0]);
»»   # Es ist besser, an dieser Stelle statt des chop($satz[0]) ein chomp($satz[0]) zu verwenden, da diese Funktion tatsaechlich nur
   # den Zeilentrenner entfernt und nicht (was zwar unwahrscheinlich ist, aber immerhin moeglich) eventuell das letzte Zeichen der
   # Zeile, ergo:

»»   chomp($satz[0]);

@felder=split(/,/,$satz[0]);
»»   foreach(@felder)
»»   {
»»     if ($_ eq $feldname) { $feldnr=$tmp; }
»»     $tmp++;
»»   }

»»   chop($satz[$satznr]);
»»   @wert=split(/,/,$satz[$satznr]);

»»   return $wert[$feldnr];

}