Tobias Neukom: Daten aus einer anderen Datei

Gibt es eine Möglichkeit per Javascript aus einer Datei daten zu lesen ?

  1. Gibt es eine Möglichkeit per Javascript aus einer Datei daten zu lesen ?

    Weis nicht, aber es gibt eine Möglichkeit Hallo zu sagen und mal freundlich nachzufragen.

    Nicht persönlich nehmen.

    CU
    speedy

  2. Hi,

    Gibt es eine Möglichkeit per Javascript aus einer Datei daten zu lesen ?

    nein.

    Speedys Tip solltest Du beherzigen, denn bei einem freundlicheren Posting hätte ich vermutlich auch Lust gehabt, meine Antwort zu begründen und die Grenzen derselben aufzuzeigen.

    HTH

    Cheatah

  3. Kein Hallo

    Gibt es eine Möglichkeit per Javascript aus einer Datei daten zu lesen ?

    Ja,gibt es.

    kein cu

  4. Hallo

    Da die anderen schon gemozt haben, unterlasse ich das jezt.
    Du muß Javamethoden von JS aus nutzen.
    Hier ist ein NN Beispiel.

    <HTML>
            <HEAD>
                    <TITLE>
                            Titel
                    </TITLE>
    <SCRIPT>
    var source = "";
    function read(file)
    {
            source = "";
            var url = new java.net.URL(file);
            var stream = new java.io.DataInputStream(url.openStream());
            var line    = "";
            while ((line = stream.readLine()) != null)
            {
                    source += line + "\n";
            }
            stream.close();
            document.out.document.clear();
            document.out.document.write(source);
            document.out.document.close();
    }
    //-->
    </SCRIPT>
            </HEAD>
            <BODY>
                    <FORM>
                            URL: <INPUT type="text" name="fn">
                            <BR>
                            <A href="javascript:read(document.forms[0].fn.value)">read</A>
                            <BR>
                            <LAYER top=60 left=10 name="out" bgcolor="ff0000">
                                    
                            </LAYER>
                    </FORM>
            </BODY>
    </HTML>

    Mit dem MSIE muß das auch irgendie tun.
    Aber da mußt du den Javacode woll in ein Applet packen und das dann von JS aus ufrufen.
    (Das Applet kannst du ja weiß machen)

    Tschüs

    Daniel

    PS: Wäre vileicht was für die auslese. Hab das schon einige male geposted.

    1. Hallo Daniel!

      PS: Wäre vileicht was für die auslese. Hab das schon einige male geposted.

      Ja, denke ich auch. Aber nicht ungeduldig sein, das dauert meist recht lange, da die Auslese immer ein Stueck hinterhaengt.

      Ich haette da mal noch ein paar Fragen dazu.

      var source = "";
      function read(file)
      {
              source = "";
              var url = new java.net.URL(file);
              var stream = new java.io.DataInputStream(url.openStream());
              var line    = "";
              while ((line = stream.readLine()) != null)
              {
                      source += line + "\n";
              }
              stream.close();
              document.out.document.clear();
              document.out.document.write(source);
              document.out.document.close();
      }

      Hier wird ja einfach eine URL angefordert, wobei dann wohl das file:-Protokoll verwendet wird.

      1. Wie muss der Name in der Variable file aussehen, bzw. woher weiss das java.net.URL-Objekt, welches Protokoll zu verwenden ist? Ist der Default file:, wenn keine Scheme-Angabe (xxx://) vorn dran steht?

      2. Kennt Java ausserdem Funnktionen, die ausschliesslich zum Dateizugriff auf dem lokalen System gedacht sind, so wie man das von anderen Programmiersprachen kennt? Wenn ja, verwendest Du die wegen der Sicherheitsaspekte nicht (sind sie also verboten in der Sandbox) oder gefaellt Dir diese Variante einfach besser?

      3. Auf diese Weise ist meines Wissens nur eine Verbindungsaufname "mit der eigenen Domain" moeglich (Du hattest das neulich auch selbst mal gesagt). Wenn die HTML-Datei hier von der lokalen Festplatte kommt, was ist dann die eigene Domain? Alle Festplatten/Partitionen des Rechners (bezieht sich auf Dos/Win; auf Unixen merkt man die Uebergaenge ja nicht), nur die Platte, von der die Datei kommt, oder nur Dateien, die im Filesystem unterhalb des Verzeichnisses dieser Datei liegen, oder <<weitere Moeglichkeiten hier ergaenzen>> ?

      Mehr faellt mir jetzt grad nicht ein.

      Mit dem MSIE muß das auch irgendie tun.
      Aber da mußt du den Javacode woll in ein Applet packen und das dann von JS aus ufrufen.

      Kann der kein Liveconnect oder Vergleichbares? Ich dachte, ich haette mal gehoert, die haben das dort nachgebaut.
      Naje, wenn man eine HTA-Anwendung hat (z.B. Selfbrowser), darf man da eh' alles.

      (Das Applet kannst du ja weiß machen)

      Geht kein transparent? Meine Standard-Hintergrundfarbe ist nicht weiss. ;-)

      So long, Calocybe

      1. Hallo Calocybe,

        Fragen über Fragen...

        Also:
        1. Der name von file muß eine gültige URL sein also z.B: http://www.domain.com/verzeichnis/info.html
            Standartwerte gibt es keine, aber wenn du sowas wie new java.net.URL("http://www.domain.com/verzeichnis/info.html",file);
            varwendest erbt die URL in file, alles von der angegebenen URL was ihr fehlt. Alos das Protokol,
            den Domain etc.

        2. Ja. var stream = new java.io.DataInputStream("file"); mußt du da verwenden. Das geht aber nicht
            in der Sandbox.

        3. Wenn die HTML-Seite von der lokalen Festplatte kommt, kann man auch auf die Festplatte zugreifen,
            aber vieleicht nur im selben Verzeichnis. Wie eng das der Browser sieht mußt du halt ausprobieren.

        »»Kann der kein Liveconnect oder Vergleichbares? Ich dachte, ich haette mal gehoert, die haben das dort nachgebaut.
        Ja haben sie. Sowas wie appletname.methode() kann man jezt in JS schreiben, aber auf Javaklassen
        zuzugreifen wie java.lang.String oder so geht scheinbar nicht.
        (Ich hab's zumindest noch nicht rausbekommen)

        (Das Applet kannst du ja weiß machen)

        Transparent geht nicht, aber du kannst in dem Applet die Hintergrundfarbe der Seite abfragen und
        das Applet damit füllen.

        »»Ja, denke ich auch. Aber nicht ungeduldig sein, das dauert meist recht lange, da die Auslese immer ein Stueck hinterhaengt.
        Ich hab Zeit. Inzwischen hab ich ein Verzeichnis mit den etwas schwieigeren Beispielen.
        Die muß ich dann nur noch reinkopieren.

        Tschüs

        Daniel

        1. Hallo Daniel,

          »»Ja, denke ich auch. Aber nicht ungeduldig sein, das dauert meist recht lange, da die Auslese immer ein Stueck hinterhaengt.
          Ich hab Zeit. Inzwischen hab ich ein Verzeichnis mit den etwas schwieigeren Beispielen.
          Die muß ich dann nur noch reinkopieren.

          Was hälst du von einem Selfaktuellartikel zum Thema? Die Frage kommt ja ziemlich oft und du stehst ja im Stoff.

          Viele Grüße

          Antje

        2. Hi!

          Fragen über Fragen...

          Naja, wenn schon, dann will ich's auch genau wissen. ;-) Danke fuer die Antworten.

          Also entweder, Du schreibst einen Artikel, wie Antje es vorgeschlagen hat, oder es kommt eben in die Auslese. Fuer beiden Faelle moechte ich hier noch bemerken, dass zur Nutzung dieser Moeglichkeit sowohl Java als auch JavaScript im Browser angeschaltet sein muessen (see http://developer.netscape.com/docs/manuals/js/client/jsguide/lc.htm for that). Desweiteren sollte man mit navigator.javaEnabled() abpruefen, ob Java im Browser eingeschaltet ist (http://developer.netscape.com/docs/manuals/js/client/jsref/nav.htm#1193894) und gegebenfalls entsprechende Notfallmassnahmen einleiten.

          Die Dokumentation zu den verwendeten Java-Klassen findet man bei
              http://java.sun.com/products/jdk/1.1/docs/api/java.net.URL.html
              http://java.sun.com/products/jdk/1.1/docs/api/java.io.DataInputStream.html
          Einstieg in die Package docs von Java 1.1 (Java 1.2 ist afaik in heutigen Browsern noch nicht implementiert) ueber
              http://java.sun.com/products/jdk/1.1/docs/api/packages.html

          1. Wenn die HTML-Seite von der lokalen Festplatte kommt, kann man auch auf die Festplatte zugreifen,
                aber vieleicht nur im selben Verzeichnis. Wie eng das der Browser sieht mußt du halt ausprobieren.

          Wer immer etwas darueber schreibt, moege dies bitte tun. ;-)

          So lange

    2. Hallo,
      ein Applet kann man ganz einfach so unsichtbar machen:
      <span style="display:none"><applet.............></applet></span>

      Gruesse
      Thomas Mell