public void ProcessLog(string Data) { TextReader LogTextReader = new StringReader(Data); string CurLine; int i = 0; DateTime StartOfDay = DateTime.MinValue; DateTime Timestamp = DateTime.MinValue; while ((CurLine = LogTextReader.ReadLine()) != null) { if (CurLine.Substring(0, 1) == "#") { if (CurLine.Substring(0, 15) == "# Opened (UTC):") { string DayStr = CurLine.Substring(16); StartOfDay = Convert.ToDateTime(DayStr.Substring(0, DayStr.IndexOf(' '))); } // Is a comment } else { string TimeNum = CurLine.Substring(0, CurLine.IndexOf(' ')); Timestamp = StartOfDay.AddMilliseconds(Convert.ToDouble(TimeNum)); // The will return the number of whole Config.Resolution chunks that have passed since Jan 1 2014. uint TimeframeID = (uint)(((Timestamp - new DateTime(2014, 1, 1)).TotalSeconds) / Config.Resolution); CurLine = CurLine.Substring(TimeNum.Length + 1); if (CurLine.Substring(0, 1) == ":") { CurLine = CurLine.Substring(1); string[] ParameterSplit = CurLine.Split(" ".ToCharArray(), 3, StringSplitOptions.RemoveEmptyEntries); Sender Sender = IRCFunctions.ParseSender(ParameterSplit[0]); string Command = ParameterSplit[1]; string Parameters = ParameterSplit[2]; Network.Parse(Timestamp, TimeframeID, Sender, Command, Parameters); } else if (CurLine.Substring(0, 4) == "PING") { // Do anything here? } else { AppLog.WriteLine(5, "DEBUG", "Unknown Line Format: " + CurLine); } } i++; } }