Javascript-Datei.Reader() lese Zeile für Zeile
Diese Frage ist in der Nähe aber nicht ganz nahe genug.
Mein HTML5-Anwendung liest eine CSV-Datei (obwohl es bezieht sich auf text, als auch) und zeigt einige der Daten auf dem Bildschirm.
Das problem, das ich habe ist, dass die CSV-Dateien können riesig sein (ich bin geschafft, Geschäfte zu vereinbaren einer 1-GB-Dateigröße-Grenze). Die gute Nachricht ist, brauche ich nur um die Anzeige einige der Daten aus der CSV-Datei an jedem beliebigen Punkt.
Die Idee ist so etwas wie (psudeo code)
var content;
var reader = OpenReader(myCsvFile)
var line = 0;
while (reader.hasLinesRemaning)
if (line % 10 == 1)
content = currentLine;
Loop to next line
Es gibt genug Artikel darüber, wie die CSV-Datei liest, ich bin mit
function openCSVFile(csvFileName){
var r = new FileReader();
r.onload = function(e) {
var contents = e.target.result;
var s = "";
};
r.readAsText(csvFileName);
}
aber ich kann nicht sehen, wie zu Lesen, Zeile für Zeile in Javascript ODER sogar, wenn es möglich ist.
Meine CSV-Datei sieht aus wie
Some detail: date, ,
More detail: time, ,
val1, val2
val11, val12
#val11, val12
val21, val22
Muss ich Streifen aus den ersten 2 Linien, und auch überlegen, was mit der Leitung zu tun, beginnend mit einem # (also warum ich Lesen müssen, durch die Zeile zu einem Zeitpunkt)
So, außer beim laden die Menge in den Speicher, habe ich irgendwelche Optionen zu Lesen, Zeile für Zeile?
- papaparse.com/docs kann helfen, verwenden Sie Vorschau-option
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine
readLine()
Methode, dies zu tun als jetzt. Jedoch, einige Ideen zu erkunden:progress
Veranstaltungen. Es ist zwar nicht erforderlich, durch die Spezifikation, der Motor könnte vorzeitig Auffüllen der.result
Eigenschaft ähnlich wie ein XMLHttpRequest-Objekt..read(size)
Methode für die Datei Leser. Ich glaube nicht, es ist bereits überall implementiert, aber.slice
Methode das gibt einen neuen Blob mit einem Teil der ursprünglichen Daten. Die Skillung und die synchrone Art der operation hin, dass dieses geschieht über Verweise, nicht kopieren, und sollte Recht performant. Dies würde ermöglichen es Ihnen, Lesen Sie die riesige Datei chunk-für-chunk.Zugegeben, keiner dieser Methoden nicht stoppen automatisch an der Linie enden. Sie müssen die Puffer, die die Blöcke manuell, brechen Sie in Linien und verschieben Sie Sie heraus, sobald Sie vollständig sind. Auch diese Operationen arbeiten auf bytes, nicht auf die Zeichen, so könnte es sein, encoding-Probleme mit multi-byte-Zeichen, die behandelt werden müssen.
Siehe auch: Lesen Zeile für Zeile die Datei in JavaScript auf der client-Seite