Ich habe einen Text angelegt, der in etwa so aussieht:
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
Filmname, FSK: <Zahl>, Darsteller: <Namen>; Genre: <Genre>
und so weiter...
Beispiel:
Rocky, FSK: 16, Darsteller: Sylvester Stallone; Genre: Action
...(insgesamt über 3000 Filme)
das hab ich gespeichert unter "filme.txt"
Und nun hab ich bei SELFHTML versucht die Suchfunktion herauszufinden und abzuleiten....
Also wenn ich ins Suchfeld z.B. Sylverster Stallone eingebe, das mir dann alles in einer Tabelle ausgegeben wird wo der Name drinsteht
und zwar die komplette Zeile.
Also wenn ich "Jurassic" eingebe müsste dann ausgegeben werden:
Jurassic Park, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park II, FSK: 16, Darsteller: Sam Neill, Genre: Action
Jurassic Park III, FSK: 16, Darsteller: Sam Neill, Genre: Action
Oder wenn ich nen schauspielernamen eingeb das alle filme wo bei darsteller der gesuchte steht, dann ausgegeben werden, mit allen infos aus dieser zeile
Ich hoffe mir kann hier jemand helfen...
Gruß Rayko
Hallo Rayko,
es gibt da ein paar Ansätze mittels dynamischer Datenanbindung, die allerdings Browserabhängig sind. Wenn Du eine Variante willst die von möglichst vielen Browsern unterstützt wird, empfehle ich die folgende Variante: Mach aus deiner Textdatei eine Javascript-Datei (z.B. daten.js) und pack den ganzen Text in eine Variable, z.B. so:
Daten="\ Rocky,16,Sylvester Stallone,Action;\ Die Abenteuer der Micky Mouse,6,Donald Duck,Trickfilm;\ Die Jagd nach dem ultimativen JavaScript Code,16,Rayko,Psycho;\ ";
Dann kannst du die JS-Datei in die HTML-Datei includen und den Text auswerten, z.B. so:
<html><head>
<script language="JavaScript" src="daten.js"></script>
</head><body>
<script language="JavaScript">
var FeldTrenner=",";
var ZeilenTrenner=";";
var Zeilen=0;
var Spalten=0;
var Eintrag="";
var i, Zeichen;
Tabelle=new Array();
Tabelle[0]=new Array();
for (i=0; i<Daten.length; i++)
{ Zeichen=Daten.charAt(i);
if (Zeichen==FeldTrenner)
{ Tabelle[Zeilen][Spalten]=Eintrag;
Spalten++;
Eintrag="";
}
else
{ if (Zeichen==ZeilenTrenner)
{ Tabelle[Zeilen][Spalten]=Eintrag;
Zeilen++;
Tabelle[Zeilen]=new Array();
Spalten=0;
Eintrag="";
}
else
{ Eintrag=Eintrag+""+Zeichen;
}
}
}
function Find(Spalte,Wert)
{ var ii, jj, tt;
for (ii=0; ii<Zeilen; ii++)
{ if (Tabelle[ii][Spalte]==Wert)
{ tt="";
for (jj=0; jj<Tabelle[ii].length; jj++)
{ tt+="\n"+Tabelle[ii][jj];
}
alert(tt);
}
}
}
Find(1,"16");//findet alle Einträge, wo zweite Spalte=16 ist
</script>
</body></html>
Die Sache sollte man aber nur bei kleinen Datenmengen so realisieren. Bei wirklich großen Datenmengen kommt eigentlich nur eine serverseitige Lösung in Frage, weil die Übertragung des gesamten Datenbestandes an den Client eigentlich nicht zumutbar ist.
Gruß Lutz.