Ich wuerde gerne Daten aus einer Text-Datei zeilenweise auslesen um sie dann weiter zu verarbeiten (--> Anzeigen falls vorgegebener String gefunden wurde). Mein Problem: Wie kann ich dies tun?
Hallo Remy
Wie die anderen Kollegen im Thread richtig angemerkt haben ist ein Zugriff aus Javascript auf irgendwelche DB-Dateien auf dem lokalen Client-Rechner nicht möglich.
Auch wird es nicht möglich sein Text-Dateien übers Internet/Intranet zu laden, da der Browser je nach Mime-Typ (oder Datei-Extension) die Datei anzeigt oder den Speichern-Dialog aufruft.
Das einzige was Du von einem Server herunterladen kannst, sind Javascript-Dateien (mit der .js-Extension).
Also musst Du die Datenbank in eine JS-Datei verpacken. Dazu muss aber jeder Record (Datensatz, Excelzeile) zuvorderst einen Variablennamen und am Schluss ein Strichpunkt aufweisen.
zum Beispiel:
DataRecord[0] = "WertausSpalte1,WertausSpalte2,...,WertausSpalte9" ;
DataRecord[1] = "WertausSpalte1,WertausSpalte2,...,WertausSpalte9" ;
DataRecord[2] = "WertausSpalte1,WertausSpalte2,...,WertausSpalte9" ;
...
DataRecord[n] = "WertausSpalte1,WertausSpalte2,...,WertausSpalte9" ;
Du musst also im Excel oder Word (über Excel- oder Word-Makros / VBA) irgendein Weg finden, eine solche Textdatei zu erzeugen.
Vor dem ersten Record muss noch mindestens folgende Javascript-Zeile eingefügt werden:
var DataRecord= new Array();
Danach speicherst Du die Datei ab und änderst die Extension auf '.js'.
In der HTML-Seite musst Du zwei JavaScript-Aufrufe setzen:
<script language="javascript" src="MeineDatenbank.js" type="text/javascript"></script>
<script language="javascript" src="MeineScript.js" type="text/javascript"></script>
Im verarbeitenden Script (MeinScript.js) kannst Du die in einer Schlaufe die einzelnen Datensätze durchgehen, in einzelne Felder aufsplitten und weiterverarbeiten:
s_Pattern = /(\w.+),(\w.+),(\w.+),...,(\w.+)/ ;
s_Pattern.exec(DataRecord[i]);
Feld1 = RegExp.$1;
Feld2 = RegExp.$2;
...
Feld9 = RegExp.$9;
Weiteres zu den Patterns findest Du in 'http://www.teamone.de/selfhtml/tecj.htm#a3'.
Diese Vorgehensweise verwende ich bei einer Initialisierung einer Tree-Struktur mit ca. 50 Records. Wie jedoch das Leistungsverhalten bei 8000 Records ist kann ich nicht beurteilen.
Ein weiterer Nachteil ist, dass man beim Splitten maximal 9 Felder haben darf. Sind mehr Felder vorhanden, muss der ganze Vorgang mit unterschiedlichen Feldtrennzeichen geschachtelt durchgeführt werden.
Ich hoffe, dass ich Dir helfen konnte ... ;-)
Grüsse
Tom