/// <summary> /// This method processes each line. /// </summary> /// <param name="line">The data line.</param> /// <param name="report">The load report.</param> /// <returns>Returns true if the line was processes successfully.</returns> protected virtual void DataProcessLine(string line, NICLoadReport report) { try { string[] item = line.Split(new char[] { '|' }, StringSplitOptions.None); if (item[1] == "*") { report.ParseSummary(line); return; } if (item.Length < 4)// || item[6]=="ieft") return; bool success = false; switch (item[2]) { case "ipv4": //case "ipv6": success = DataProcessRecord(item[3], item[1], item[4]); break; } if (success) report.AddRecord(item[2]); } catch (Exception ex) { throw ex; } }
/// <summary> /// This method reads through each line in the stream and processes it. /// </summary> /// <param name="id">The NIC id.</param> public virtual NICLoadReport Load(string id, Stream strmData) { DisposeCheck(); NICLoadReport report = new NICLoadReport(); if (strmData == null) throw new ArgumentNullException("strmData is null"); if (strmData.CanRead) { using (StreamReader sr = new StreamReader(strmData)) { bool firstLineProcessed = false; while (strmData.CanRead && !sr.EndOfStream) { try { string line = sr.ReadLine(); if (line == null) break; //Skip commented lines if (line.StartsWith("#")) continue; //Skip empty lines if (line.Trim() == "") continue; //Process the first line. if (!firstLineProcessed) { firstLineProcessed = true; report.ParseHeader(line); continue; } DataProcessLine(line, report); } catch (Exception ex) { } } } } return report; }