private bool ProcessTSharkString(string s) { bool added = false; s = s.TrimStart(' ').Replace(" ", " ").Replace(" ", " ").Replace(" ", " "); if (s.Contains(textBoxFilter.Text.Replace(" ", " "))) { string[] values = s.Split(' '); if (values.Length > 10) // похоже, так теряются строки, которые прочли пока они не успели до конца записаться в лог. ПОДУМАТЬ!!! { if (sessionId == "") { if (!TempSessions.ContainsKey(values[8])) { TempSessions.Add(values[8], new List <string>()); } TempSessions[values[8]].Add(s); if (values.Length > 11) // this session has a Marked packet => this is a video session, so take it!! { sessionId = values[8]; foreach (string tempstr in TempSessions[sessionId]) { rawSessionData.Add(tempstr); string[] tempvals = tempstr.Split(' '); session.Add(RTPPacket.ImportTShark(tempvals)); } } } else if (sessionId == values[8]) { rawSessionData.Add(s); RTPPacket p = RTPPacket.ImportTShark(values); if (!p.Corrupted) { session.Add(p); } added = true; } } } return(added); }