Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.12.2015, 20:33
Новичок на форуме
Отправить личное сообщение для Vlad_k Посмотреть профиль Найти все сообщения от Vlad_k
 
Регистрация: 08.12.2015
Сообщений: 1

Парсер текста, результат в массив
необходимо распарсить текст 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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Результат в массив... Viral AJAX и COMET 3 15.03.2013 12:37
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 22:02
Представление текста как массив байтов poorking Оффтопик 15 08.11.2010 10:00
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30