Bernd: Dateien mittels Javascript auf Festplatte suchen

Hallo,

ich habe ein Archivierungssystem für Stücklisten entworfen, in diesem ist für jede Stückliste eine eigene XML-Datei erzeugt worden (z.B. N10 06 210-03.xml), diese Dateien befinden sich in einer Verzeichnisstruktur bestehend aus jeweils den ersten drei Zeichen der Stücklisten (und noch einigen weiteren Verzeichnissen).
Nun geht es um eine Einstiegsmöglichkeit um nicht immer den jeweiligen Ordner öffnen zu müssen (es sind teilweise sehr viele Dateien enthalten: bis zu 20.000).
Ich habe versucht eine kleine HTML-Seite zu schreiben, mit eingebettetem Javascript, in der man die gewünschte Stückliste, sowie Teilstückliste mittels Wildcards, angeben kann (z.B. N10 06*). Das Skript soll dann im entsprechenden Verzeichnis nach den zutreffenden Dateien suchen und anschließend Hyperlinks zu diesen Dateien erzeugen.

Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?
Vielen Dank für eure Hilfe!

MfG Bernd

  1. hi,

    Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?

    pauschal: nein.

    (vom ausnutzen von lücken in der implementierung oder sonstigen fiesen workarounds abgesehen.)

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?
      pauschal: nein.

      Pauschal: doch, das gibt es.

      Grüße aus Berlin

      Christoph S.

  2. Hi,

    Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?
    Vielen Dank für eure Hilfe!

    was ich denke was du sucht ist eine möglichkeit einen ordner auszulesen.

    MfG

  3. hallo Bernd,

    Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?

    Ja, die gibt es. Ein (allerdings mächtig ausgefeiltes und imposantes) Beispiel bietet die Suchmaschine von Oliver Garcia, die in http://de.selfhtml.org/navigation/suche/index.htm verwendet wird. Wenn du mehrere zehntausend Dateien verwaltest, könnte sich eine solche Suchmaschine nützlich machen ;-)

    Grüße aus Berlin

    Christoph S.

  4. Hi,

    ich habe ein Archivierungssystem für Stücklisten entworfen,

    Das ist doch schonmal recht praktisch.

    Ich habe versucht eine kleine HTML-Seite zu schreiben, mit eingebettetem Javascript, in der man die gewünschte Stückliste, sowie Teilstückliste mittels Wildcards, angeben kann (z.B. N10 06*).
    Gibt es nun eine Möglichkeit mittels Javascript Dateien zu suchen?

    Nur Brute-Force, aber das spielt hier keine Rolle.

    Der Witz dabei ist, das Du das System selber entworfen hast, Du kennst also die Regeln. Du kannst also den Verzeichnisbaum schonmal darstellen, Du weißt welche Dateien in welchen Verzeichnissen liegen.
    Jetzt kannst Du Dir einen eigenen Regex-parser basteln, der Listen erstellt, welche Dateien in den Verzeichnissen drin sein dürfen. Die fragst Du ab und zwar indem Du die in ein "src" Attribut lädst ((I)Frame, IMG o.ä.) und den Fehler abfängst (z.B. mit try..catch). Kein Fehler->Link, Fehler->Datei nicht vorhanden.
    Problem dabei: die Verzeichnisse dürfen nicht endlos Dateien enthalten. Es können ruhig 100.000 oder mehr sein, nur muß es eine wohldefinierte Grenze geben.

    Das eigen Regex ist ein klein wenig Arbeit, aber wenn Du nur wenige Sachen einbaust dürfte das schnell erledigt sein. Der Rest ist dann kein Problem.

    Aber eine Frage sei mir doch noch erlaubt: warum um Gottes Willen nimmst Du keine DB dafür?

    so short

    Christoph Zurnieden

    1. Hallo,

      Ich werde aus deinem Posting nicht schlau, da es mir aber das am meisten zielführende im ganzen Thread erscheint, antworte ich einmal hier.

      Jetzt kannst Du Dir einen eigenen Regex-parser basteln, der Listen erstellt, welche Dateien in den Verzeichnissen drin sein dürfen.

      Was meinst du mit Listen?
      Man gibt z.B. »N10 06*« an und es wird ein Array generiert mit allen potenziellen Dateinamen, die darunter eingeordnet sein können? Also möglicherweise eine Liste mit 20.000 Einträgen, sofern die Nummern überhaupt fortlaufend sind?

      Die fragst Du ab und zwar indem Du die in ein "src" Attribut lädst ((I)Frame, IMG o.ä.)
      Kein Fehler->Link, Fehler->Datei nicht vorhanden.

      Verstehe ich nicht, wieso? Es soll dadurch die Existenz aller 20.000 potenziellen Dateien nacheinander abgefragt werden?

      Ich würde als Anfang einfach einen Index mit allen Dateinamen anlegen, also einen Array, der alle Pfade enthält. Der lässt sich in einer oder mehreren einfach einbindbaren JavaScript-Datei(en) unterbringen und kann durchsucht werden, ohne dass die Frage nach der Möglichkeit der Prüfung der Existenz von Dateien überhaupt aufkommt.

      Mathias

      1. Hi,

        Ich werde aus deinem Posting nicht schlau,

        Du meinst: es gibt nur einen Cheatah? ;-)

        Jetzt kannst Du Dir einen eigenen Regex-parser basteln, der Listen erstellt, welche Dateien in den Verzeichnissen drin sein dürfen.

        Was meinst du mit Listen?
        Man gibt z.B. »N10 06*« an und es wird ein Array generiert mit allen potenziellen Dateinamen, die darunter eingeordnet sein können? Also möglicherweise eine Liste mit 20.000 Einträgen, sofern die Nummern überhaupt fortlaufend sind?

        Das ist also offensichtlich unpassend, oder?
        Also müssen die Nummern fortlaufend sein (geht, da er die Datenstruktur selbst gebastelt hat) und in den Listen steht nur Anfang und Ende.

        Die fragst Du ab und zwar indem Du die in ein "src" Attribut lädst ((I)Frame, IMG o.ä.)
        Kein Fehler->Link, Fehler->Datei nicht vorhanden.

        Verstehe ich nicht, wieso? Es soll dadurch die Existenz aller 20.000 potenziellen Dateien nacheinander abgefragt werden?

        Da sortiert ist eine lineare Suche nicht nötig, es kann binär durchgeschaut werden.

        Ich würde als Anfang einfach einen Index mit allen Dateinamen anlegen

        Ich ging davon aus, das der Komplex nicht statisch ist, sondern sich ständig ändert. Ist er statisch entfällt der ganz Kram von oben selbstverständlich und es kann ein simpelr Index benutzt werden.

        also einen Array, der alle Pfade enthält.

        Aber doch nur die Verzeichnispfade, oder?

        Der lässt sich in einer oder mehreren einfach einbindbaren JavaScript-Datei(en) unterbringen und kann durchsucht werden, ohne dass die Frage nach der Möglichkeit der Prüfung der Existenz von Dateien überhaupt aufkommt.

        Eben diese Prüfung auf Existenz auf die der OP insistierte verleitete mich zu der Meinung, das es eine dynamische Datenstruktur sei. Eine read-only DB läßt sich auf diese Weise ja selbst mit Javascript durchaus basteln. Auch wenn es dabei mit der Transaktionssicherheit recht mau aussieht ;-)

        so short

        Christoph Zurnieden

        1. Hi Leuz,

          vielen lieben Dank für all die Antworten!
          Zuerst mal zu dem Archivierungssystem, momentan und für die nächste Zeit ist es nur zur Aufbewahrung und Durchsuchung von statischen Stücklisten. Jedoch können in der Zukunft Synchronisierungen mit dem dynamischen System stattfinden. Aus diesem Grunde wollte ich eigentlich Abstand von der Lösung mit der Dateiliste samt Verzeichnissen nehmen. Sonst muss bei jeder Synchronisierung rel. viel angepasst werden.
          Mich enttäuscht es etwas dass Javascript keinen Dateizugriff kann!
          Ich befasse mich jetzt noch mit dem Vorschlag FSO zu nutzen, ansonsten werde ich versuchen ein C/C++ oder Delphi - Programm zu schreiben das diese Suche durchführt. Was haltet ihr davon? Ist es mit herkömmlichen Programmiersprachen überhaupt möglich soetwas wie Hyperlinks zu erzeugen?
          Vielen Dank für die bisherigen und zukünftigen Antworten!

          CU Bernd

          1. Hi,

            Mich enttäuscht es etwas dass Javascript keinen Dateizugriff kann!

            Doch kann es, nur nicht so, wie Du das gerne hättest.
            Das Risiko wäre einfach zu groß.

            Ich befasse mich jetzt noch mit dem Vorschlag FSO zu nutzen, ansonsten werde ich versuchen ein C/C++ oder Delphi - Programm zu schreiben das diese Suche durchführt. Was haltet ihr davon?

            Dann vernichtest Du aber den Vorteil der riesigen Portabilität der Javascript-Methode (würde auf allem laufen, auf das Mozilla portiert ist sowie noch einiges an Embedded Systems). Da wäre dann die Lösung mit einer echten Datenbank sinnvoller.

            Ist es mit herkömmlichen Programmiersprachen überhaupt möglich soetwas wie Hyperlinks zu erzeugen?

            Wenn Du den Browser als UI behalten möchtest richte Dir einen Webserver ein. Dann aber auch gleich mit Datenbank.

            so short

            Christoph Zurnieden

  5. Hallo Bernd,

    schau mal under [link http://www.html-world.de/] unter FSO nach

    Gruß balduin

    1. sorry, sollte natürlich so aussehen:

      schau mal unter < http://www.html-world.de/> und dann unter FSO nach

      Gruß balduin

      1. Hi,

        schau mal unter http://www.html-world.de/ und dann unter FSO nach

        Das hat aber nix mit Javascript zutun, oder?

        Ist aber trotzdem ein schöner Aufsatz, meinen Respekt.

        so short

        Christoph Zurnieden