2017-03-02 1 views
-2

Ich lese Daten aus der Datei so mit unter Code singuläre Zeilendaten Push an results Wie kann ich Daten basierend auf ID in unter Fall ID teilen. Ziel ist es, vollständige Daten für diese ID zu erhalten, auch wenn sie mehrere Zeilen haben.Wie teilt man Daten basierend auf ID auf?

Ctrl.js

var results = []; 
    var lines = data.split('\n'); // get the lines 
      lines.forEach(function(line) { // for each line in lines 
       if (line.indexOf(searchStr) != -1) { // if the line contain the searchSt 
        results.push({ 
        filename:logfile.filename, 
        value:line 
        }); 
       } 
      }); 

datei.txt

[ID:81d166ed-dcd6-4f30-bcf4-7c3c1a8feefb]testid Lorem test Ipsum is simply dummy text text of the printing and typesetting ind 
[ID:8a3b2de6-742e-49e4-bf96-02d14e6b0799]testid Lorem test Ipsum is simply dummy text text of the printing and typesetting industry. 
[ID:c3d19dfe-d803-4661-a0c4-52a18aa48766]testid Lorem test Ipsum is simply dummy 
+0

was 'searchStr' Wert? – RomanPerekhrest

+0

im Grunde ist es eine Suchfunktion so 'searchStr' ist Benutzereingaben vom Client und wir müssen diese Daten aus der Datei übereinstimmen und vollständige Daten dieses Ereignisses senden – hussain

+0

unklar. * Wie kann ich Daten basierend auf ID * teilen. Wie sollte das erwartete Ergebnis aussehen? – RomanPerekhrest

Antwort

0

Wenn alle Ihre IDs die gleiche Länge haben, die es sieht aus wie sie sind, in Ihrem lines.forEach können Sie dies setzen extrahiere die ID. Nicht ganz sicher, was du mit dem Rest der Zeile machen willst, aber das sieht so aus, als würde es die ID bekommen.

var id = line.substr(4,36) 

Erklärung scheint das den Text an dieser Stelle in der Zeichenfolge aus dem Split nur greifen, wie es immer an der gleichen Stelle sein sollte. Es gibt robustere Wege, aber für diesen Fall scheint es ein leicht verständliches Beispiel zu sein.

0

fügen Sie es kurz vor Ihrer foreach-Schleife:

for(var i = 0; lines.length > i ; i = i + 1){ 
    lines[i] = lines[i].replace(/\[ID:([a-z0-9]+-)+([a-z0-9])+\]/g, ''); 
} 

sollte es Ergebnisse ein Array ohne Ihre [ID: Wert] für Ihr Beispiel wird es zurück:

"testid Lorem test Ipsum is simply dummy text text of the printing and typesetting ind" 
"testid Lorem test Ipsum is simply dummy text text of the printing and typesetting industry." 
"testid Lorem test Ipsum is simply dummy" 
+0

das ist nicht das, was ich hier erreichen will, ich brauche IDs, damit ich die Suche basierend auf diesen IDS machen kann – hussain

Verwandte Themen