Ich brauche eine Datei Zeile für Zeile in folgendem Format mit Node.js zu analysieren:lesen Linien synchron aus der Datei in Node.js
13
13
0 5
4 3
0 1
9 12
6 4
5 4
0 2
11 12
9 10
0 6
7 8
9 11
5 3
eine Grafik darstellt. Die ersten beiden Zeilen sind die Anzahl der Kanten und Scheitelpunkte, gefolgt von den Kanten.
ich die Aufgabe mit so etwas wie erreichen kann:
var fs = require('fs');
var readline = require('readline');
var read_stream = fs.createReadStream(filename);
var rl = readline.createInterface({
input: read_stream
});
var c = 0;
var vertexes_number;
var edges_number;
var edges = [];
rl.on('line', function(line){
if (c==0) {
vertexes_number = parseInt(line);
} else if (c==1) {
edges_number = parseInt(line);
} else {
edges.push(line.split(' '));
}
c++;
})
.on('end', function(){
rl.close();
})
Ich verstehe diese Art von Dingen, vielleicht nicht, was Node.js gedacht wurde, aber die kaskadiert if
im line
Rückruf nicht wirklich elegant aussehen/lesbar für mich.
Gibt es eine Möglichkeit, synchron Zeilen aus einem Stream wie in jeder anderen Programmiersprache zu lesen?
Ich bin offen Plugins zu verwenden, wenn es keine integrierte Lösung gibt.
[EDIT]
Sorry, ich soll deutlicher herausgestellt habe, dass ich die ganze Datei im Speicher vermeiden möchte Laden vorher
https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options –
ja, es lädt mit 'fs.readFileSync' und analysieren sie dann mit Ihrem Code synchron nach der Trennung von Zeilenumbrüchen, dh' Linien = fs.readFileSync ('graph.txt'). split (/ [\ n \ r] /); ' –