Gibt es eine Möglichkeit, eine Datei Zeile für Zeile in Javascript zu lesen, speziell diese file, die ein Wörterbuch ist. Ich habe versucht, eine Replik eines Java-Anagramm-Solvers zu erstellen, die ich vor ein paar Monaten gemacht habe, aber ich habe das Problem, eine Datei Zeile für Zeile nicht lesen zu können, getroffen. Ich könnte die Datei herunterladen und lokal speichern, wenn das für die Lesbarkeit von Bedeutung wäre.Können Sie Zeile für Zeile in Javascript lesen?
Antwort
Verwendung YQL:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=cbfunc
Here's what the fiddle looks like:
window.callback = function(a) { window.file = a.query.results.body.p; go(); };
$.getScript('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=callback');
window.go = function() {
var terms = file.split(' ');
for (var i = 0; i < 100; i++)
console.log(terms[i])
};
Die Geige nur, dass die ersten 100, aber Sie bekommen die Idee (hoffe ich).
Das sieht gut aus, ich habe noch nie YQL benutzt, also werde ich es versuchen. Danke für das Codebeispiel :) – JasonMortonNZ
In den meisten Fällen können Sie die Datei einfach in den Speicher lesen und dann in Zeilen parsen. Wenn Sie das Ganze mit einem Ajax-Aufruf in den Speicher schreiben, könnten Sie einfach data.split("\n")
verwenden, um es in ein Array von Zeilen umzuwandeln.
Wenn ich dies auf einer Datei mit 100k + Zeilen, wäre es immer noch in Ordnung? – JasonMortonNZ
Wenn jede Zeile 100 Byte lang wäre, wären das 10 MB RAM für die Datei. Auf einem Desktop-Computer ist das in Ordnung - einige Bilder sind so groß. Auf einem Telefon ist es wahrscheinlich keine gute Idee, obwohl vielleicht immer noch OK. – jfriend00
Sie sollten Ajax Request für einen solchen Vorgang einleiten. Das Lesen einer Datei Zeile für Zeile, wird jedoch nicht über Ajax empfohlen, da Sie am Ende eine Menge Serveranforderungen erstellen werden, da es bei JavaScript nur um Client-Seite und eingeschränkten Zugriff geht. Ajax-Anfrage an den Server ist in den letzten Jahren hinzugefügt worden.
Definitiv suchen Sie einige Informationen mit einigen Schlüsselwörtern; Es wäre also sinnvoll, wenn Sie die Suchlogik den Serverfunktionen hinzufügen. Rufen Sie die spezifische Funktion über Ajax auf und geben Sie das Ergebnis an den Browser zurück. Diese Funktion könnte eine Datei sein, die ein Ergebnis oder einen Web-Service erzeugt. Sie wählen Ihren Geschmack.
Alternative Option wäre, die Dateiinformationen zu JSON (about JSON) beim Start neu zu codieren und es auf Client-js-Skript zu rollen. Ich würde XML dafür nicht empfehlen, da es in den Verarbeitungsterminen viel Browserspeicher verbrauchen wird. War dort! :(. Da JavaScript native Unterstützung für JSON hat, wird es reibungslos funktionieren. Warnung dies macht Daten zu lokalen.
Ich denke, dass Javascript nicht die richtige Wahl für die bestimmte Anwendung ist, die ich baue. Ich habe keine Erfahrung mit JSON, werde aber bald darauf schauen, ob ich etwas Freizeit finden kann (was mir selten passiert). Danke für Ihre Kommentare. – JasonMortonNZ
- 1. GZIPInputStream Zeile für Zeile lesen
- 2. Eingabe Zeile für Zeile lesen
- 3. Perl Zeile für Zeile lesen
- 4. lesen Zeile für Zeile in Bash-Skript
- 5. phantomjs Javascript eine lokale Datei Zeile für Zeile lesen
- 6. Datei Zeile für Zeile in PowerShell lesen
- 7. Zeile für Zeile lesen in C
- 8. So lesen Sie eine Datei Zeile für Zeile Zeile für Zeile:
- 9. R - STDIN Zeile für Zeile lesen
- 10. Vala lesen Datei Zeile für Zeile
- 11. Txt-Datei Zeile für Zeile lesen
- 12. Textdatei: Zeile für Zeile lesen C#
- 13. Datei Zeile für Zeile lesen, Zeichen für Zeichen
- 14. Lesen einer Datei Zeile für Zeile in C#
- 15. Lesen Sie eine Zeile Zeile für Zeile in einer Batch-Datei
- 16. Erklären einer Funktion JavaScript Zeile für Zeile
- 17. Zeile für Zeile mit einem XmlHttpResponse-Objekt lesen
- 18. Lesen/Analysieren Textdatei Zeile für Zeile in VBA
- 19. Lesen einer Zeichenfolge Zeile für Zeile in C#
- 20. Zeile für Zeile aus der Parameterdatei in Funktion lesen
- 21. eine Textdatei in R Zeile für Zeile lesen
- 22. MPI_File_read_at Zeile für Zeile
- 23. Lesen Sie Textdatei, bestimmte Zeile.
- 24. So lesen Sie eine Datei Zeile für Zeile und teilen jede Zeile
- 25. Lesen von einer Datei nicht Zeile für Zeile
- 26. Fscanf oder Fgets? Lesen einer Datei Zeile für Zeile
- 27. Lesen von CSVs aus einer Zip-Datei Zeile für Zeile
- 28. So lesen Sie eine HTTP-Datei Zeile für Zeile in C
- 29. Nodejs - Zeile für Zeile aus Datei lesen, async Aktion für jede Zeile ausführen und reusme
- 30. Zeile zeilenweise lesen und Zeile für Zeile in eine andere Datei schreiben
Sie können beliebige Daten aus Ihrer eigenen Domäne mit AJAX laden. Sie würden eine XML HTTP-Anfrage verwenden. – zzzzBov
Oh und Wenn es nicht Ihre Domäne ist, dann können Sie es nicht tun (es sei denn, Ihr Browser ist fehlerhaft). Dies würde die Ursprungsregeln für Querverweise brechen. –
Da Javascript im Browser keinen Zugriff auf ein Dateisystem und die nur andere Option ist, über das Netzwerk zu gehen, möchten Sie wirklich in einzelnen Anfragen hin und her zum Server gehen, um die Datei nach und nach zu lesen? Vielleicht ist dies einfach nicht die richtige Umgebung, um dieses Problem zu lösen. – deceze