Remy: Auslesen einer *.txt Datei

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?

Gruss
Remy

P.S.: Es geht hier um eine Datenbank mit ca. 8000 einträgen. Nun moechte ich eine WebSite gestalten mit der ich diese Datenbank nach Suchkriterien filtern und die Ergebnisse anzeigen kann. Die Datenbank basiert auf einem ExcelSheet.

  1. P.S.: Es geht hier um eine Datenbank mit ca. 8000 einträgen.

    dafür würde ich nicht javascript nehmen. schau dir doch mal php3 (www.php3.de) und mysql (www.mysql.com) an. meiner meinung nach die beste möglichkeit, mit datenbanken zu arbeiten.

    gruss, David

  2. 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?

    Wie willst Du mit dem auf dem Client (vom Browser) interpretierten JavaScript auf eine auf dem Server liegende Datenbank direkt zugreifen?

    1. 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?

      Wie willst Du mit dem auf dem Client (vom Browser) interpretierten JavaScript auf eine auf dem Server liegende Datenbank direkt zugreifen?

      Ganz einfach: Im Intranet werden sog. allgemeine Laufwerke (z.B. X:) fuer jedermann angezeigt. D.h. jeder kann die darauf gespeicherten Daten lesen -->Ich greife mit einer WebSite auf X:\Daten\Datenbanx.txt zu und will jene auslesen. Nur wie?

      Mit document.open("X:\Daten\Datenbanx.txt") ist das ganze Teil schon sichtbar zu machen was aber nicht in meiner Absicht steht.

      Ich will auszüge daraus filtern und anzeigen...

      1. hi!

        Ich will auszüge daraus filtern und anzeigen...

        Du kannst mit JavaScript überhaupt nicht auf die Festplatte zugreifen, weder auf die des Clients noch auf die des Servers.

        bye, Frank!

  3. 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