Datei zeilenweise in Array lesen - wie?
Ralf Konstanz
- javascript
0 Calocybe0 Daniel Thoma0 Calocybe0 Daniel Thoma0 Calocybe0 Daniel Thoma0 Calocybe
Hi!
wie lese ich eine Datei (Text) zeilenweise in einen Array ein?
Und machen die verschiedenen Zeilenenden (PC, Unix, Mac) Probleme?
DANKE!!!
Gruss,
Ralf
Hi Ralf!
wie lese ich eine Datei (Text) zeilenweise in einen Array ein?
Gar nicht. JavaScript kann keine Dateien lesen (es sei denn, Du verwendest Signed Scripts (Netscape)
oder HTA-Applikationen (IE 5+)).
Du kannst lediglich aus der Textdatei z.B. mit Perl eine JS-Datei generieren, in der ungefaehr sowas steht:
textdatei = new Array(
"erste Zeile der Datei",
"zweite Zeile",
...
);
und diese generierte Datei dann einbinden.
Calocybe
Hi Ralf,
das geht mit Hilfe von Java. Auf dem MSIE hab ich das zwar noch nicht zum Laufen gebracht,
aber es muß auch irgendwie gehen.
function read(file)
{
var source = new Array();
var url = new java.net.URL(file);
var stream = new java.io.DataInputStream(url.openStream());
var line = "";
var nr = 0;
while ((line = stream.readLine()) != null)
{
source[nr] = line;
}
stream.close();
return source;
}
Daniel
Hallo Daniel!
das geht mit Hilfe von Java. Auf dem MSIE hab ich das zwar noch nicht zum Laufen gebracht,
aber es muß auch irgendwie gehen.
Wenn das gehen wuerde, waere es ein riesiges Sicherheitsloch. Java und JavaScript unterliegen nicht ohne
Grund sehr engen Restriktionen bei dem was sie duerfen und was nicht. Ein unsigniertes JavaScript oder
Java Applet lebt in der sogenannten Sandbox, seinem kleinen Universum. Aus dem darf es nicht heraus.
Manchmal gelingt es doch einem, dann geht fuer gewoehnlich ueberall die Schlagzeile "Neues Sicherheits-
loch in IE entdeckt" um.
Dein Code mag bei einer Java Application gut funktionieren, fuer ein unsigniertes Applet oder JS nuetzt er
jedoch nichts, denn die Festplatte des Besuchers liegt ausserhalb der erwaehnten Sandbox.
Calocybe
Hallo Calocybe
Danke für den Hinweis, aber das habe ich auch gewußt.
In wirklichkeit ist es ein bischen anders als es du beschreibst.
Man kann auf diese Weise natürlich nicht auf alle Dateien zugreifen
(mit signedobjects oder wie das heißt gehts, aber nur mit benuzereraubnis)
aber auf die die auf dem selben Server im selben Verzeichnis wie die entsprechende HTML, JS, oder
CLASS Datei.
Wenn ich sage das es geht, dann hab ich, in 99% der Fälle, wenn es nicht gerade trivial ist,
es auch ausprobiert und weiß warum es geht.
Tschüs
Daniel
N'Abend Daniel
Man kann auf diese Weise natürlich nicht auf alle Dateien zugreifen
(mit signedobjects oder wie das heißt gehts, aber nur mit benuzereraubnis)
aber auf die die auf dem selben Server im selben Verzeichnis wie die entsprechende HTML, JS, oder
CLASS Datei.
Mmh sorry, da lag wohl ein Missverstaendnis vor. Ich war davon ausgegangen, dass Ralf's Seite auf einem
Webserver liegt, die zu oeffnende Datei jedoch auf dem Clientrechner. Wenn man's recht bedenkt, ist das
aber ziemlich sinnlos, es sei denn, man will wirklich den User ausspionieren. Und das wollen wir doch
nicht, oder? ;-) Ralf hat leider nicht so genau gesagt, was er eigentlich will. Da er sich bis jetzt nicht mehr
gemeldet hat, gehe ich mal davon aus, dass ihm genug geholfen wurde.
Ach ja, eines noch: Bei Deiner Methode muss natuerlich auch Java angeschaltet sein (was bei mir z.B. nie
der Fall ist). Man sollte also erst mal noch mit navigator.javaEnabled() pruefen, ob man das ueberhaupt
benutzen kann. Und wenn nicht, naja, dann hat man wohl ein Problem...
Calocybe
Hallo Calocybe
»»Wenn man's recht bedenkt, ist das
aber ziemlich sinnlos, es sei denn, man will wirklich den User ausspionieren. Und das wollen wir doch
nicht, oder? ;-)
Naja, so sicher bin ich da nicht...
Ach ja, eines noch: Bei Deiner Methode muss natuerlich auch Java angeschaltet sein (was bei mir z.B. nie
der Fall ist).
Was haßt du gegen Java?
Zugegeben, es gibt ne Menge dummer Applets, aber Java ist halt doch du coolste Sprache aller Zeiten.
(Perl ist, genauso cool zugegeben)
Daniel
PS: Klarer fall für NI
Moin!
Was haßt du gegen Java?
Was ich gegen Java hasse? ;-) Naja, dauert halt immer, bis der Netscape die Engine hochgefahren hat,
und danach ist er meist recht unstabil. Und ja, meistens wird es fuer irgendeinen Schnickschnack
missbraucht, manchmal sogar fuer Menues mit Mouse-Over-Effekt. :-( Ansonsten waer's schon ok.
Zugegeben, es gibt ne Menge dummer Applets, aber Java ist halt doch du coolste Sprache aller Zeiten.
(Perl ist, genauso cool zugegeben)
Ich weiss nicht, mit Java konnte ich mich nicht so recht anfreunden. Vom Feeling her gefaellt mir C++
einfach besser. Will Java aber trotzdem mal noch richtig lernen, wenn... ja wenn ich mal dazu komme. *g*
So long
PS: Klarer fall für NI
Yepp. :-)