Парсер текста, результат в массив
необходимо распарсить текст CSV и создать:
1. массив с уникальными значениями(сделал двумя циклами)но если данных много то тормозит 2. как то его сгруппировать по второму столбцу чтоб данные шли в таком порядке: 1445112299; 109;255;0;0;17;1.5 1445112299; 109;255;3;0;6;0 1445112351; 2;255;3;0;11;Relay & Button 1445112351; 2;255;3;0;12;1.0 3. если данные со 2 по 5й столбец совпадают то в массив записывалось последнее по времени значение 4. построить дерево такого вида 109- -------1;0;0;24;Ibooton key -------2;0;0;15;LPE key -------3;0;0;15;RMC key 2 - ------1;1;1;2;0" ------255;3;0;11;Relay & Button подскажите как попроще все это сделать. <textarea id='debugtty' rows='20' cols='100'>"1445095701; 0;0;3;0;9;gateway started, id=0, parent=0, distance=0 1445095701; 0;0;3;0;14;Gateway startup complete. 1445112299; 0;0;3;0;9;read: 109-109-0 s=255,c=0,t=17,pt=0,l=3,sg=0:1.5 1445112299; 109;255;0;0;17;1.5 1445112299; 0;0;3;0;9;read: 109-109-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0 1445112299; 109;255;3;0;6;0 1445112301; 0;0;3;0;9;read: 109-109-0 s=1,c=0,t=24,pt=0,l=11,sg=0:Ibooton key 1445112301; 109;1;0;0;24;Ibooton key 1445112301; 0;0;3;0;9;read: 109-109-0 s=2,c=0,t=15,pt=0,l=7,sg=0:LPE key 1445112301; 109;2;0;0;15;LPE key 1445112301; 0;0;3;0;9;read: 109-109-0 s=3,c=0,t=15,pt=0,l=7,sg=0:RMC key 1445112301; 109;3;0;0;15;RMC key 1445112351; 0;0;3;0;9;read: 2-2-0 s=255,c=3,t=11,pt=0,l=14,sg=0:Relay & Button 1445112351; 2;255;3;0;11;Relay & Button 1445112351; 0;0;3;0;9;read: 2-2-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0 1445112351; 2;255;3;0;12;1.0 1445112351; 0;0;3;0;9;read: 2-2-0 s=1,c=0,t=3,pt=0,l=0,sg=0: 1445112351; 2;1;0;0;3; 1445112384; 0;0;3;0;9;send: 0-0-2-2 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:1 1445112384; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:1 1445112384; 2;1;1;1;2;1 1445112406; 0;0;3;0;9;send: 0-0-2-2 s=1,c=1,t=2,pt=0,l=1,sg=0,st=ok:0 1445112406; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 1445112406; 2;1;1;1;2;0 1445112578; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 1445112578; 2;1;1;1;2;0 1445112578; 0;0;3;0;9;read: 2-2-0 s=1,c=1,t=2,pt=0,l=1,sg=0:0 1445112578; 2;1;1;1;2;0" </textarea><br> <script> var Str = document.getElementById( 'debugtty' ).value; //alert(Str); var strres=Str.split("\n"); var tree=["1;2;3;4;5;6;7"]; for( var i = strres.length-2; 0 < i; i --){ var valcsv=strres[i].split(";"); //элементы строки лога var fl=false; for( var n = 0 ;n < tree.length; n ++){ var valtreecsv=tree[n].split(";"); //элементы строки дерева if(valtreecsv[1]==valcsv[1] && valtreecsv[2]==valcsv[2] && valtreecsv[3]==valcsv[3] && valtreecsv[4]==valcsv[4] && valtreecsv[5]==valcsv[5] && valtreecsv[6]==valcsv[6] ){ fl=true } } if (fl==false) { // alert(strres[i]); tree.push(strres[i]); } } alert(tree); console.log(tree); </script> <textarea id='console' rows='20' cols='100'>"."</textarea><br> |
Часовой пояс GMT +3, время: 14:59. |