public int LoadToJson(string path) { var propList = new List <PropertyInfo>(); var lines = File.ReadLines(path); bool isFirst = true; int dateColOrdinal = -1; //var colCount = 0; var lineCounter = 0; foreach (var line in lines) { if (lineCounter >= LargeFileCutoffForSplit) { return(LargeFileCutoffForSplit); } lineCounter++; var cols = line.Split('\t'); if (isFirst) { isFirst = false; var isOldQvStuff = IsOldStyleQvLog(cols[0]); //this might be a old style QV log.. Which we detect by col(0:0) = datetime. propList = ReadAndSetHeaders(cols, isOldQvStuff, ref dateColOrdinal); if (!isOldQvStuff) { continue; } } var item = new GenericDataWrapper(); string badShit = null; for (var i = 0; i < cols.Length; i++) // will support bad lines where the idiots have not crlf safed their error messages { if (propList.Count <= i) { //now this gets Bjarni Angry TABS IN A FRIGGING TAB SEPARATED LOG!!! REALLY !!! badShit += "\t " + cols[i]; } else { if (dateColOrdinal == i) { item.DateTime1 = GetDateTimeFromLog(cols[i]); } if (Headers[i].MaxCharCount < cols[i].Length) { Headers[i].MaxCharCount = cols[i].Length; } LogFileAnalyzer?.Analyze(Lines.Count, i, cols[i]); propList[i].SetValue(item, cols[i]); } } if (propList.Count < cols.Length) { badShit = propList[propList.Count - 1].GetValue(item) + "\t " + badShit; propList[propList.Count - 1].SetValue(item, badShit); } Lines.Add(item); } LogFileAnalyzer?.OnFinished(); return(0); //winOk signal :) }
private DateTime RightClikFilterDateColumnGetter(GenericDataWrapper model, object o, OLVColumn olvColumn) { return(model.DateTime1); }
private List <Tuple <string, List <QuickFilterValues> > > GenerateRightClickMenu(GenericDataWrapper model, object value, OLVColumn eColumn) { var ret = new List <Tuple <string, List <QuickFilterValues> > >(); var quickPositive = new QuickFilterValues { NegativeFilter = false, ColumnName = eColumn.Text, FilterValue = value.ToString(), FriendlyName = $"Quick Filter By {eColumn.Text} = '{value}'" }; var quickNegative = new QuickFilterValues { NegativeFilter = true, ColumnName = eColumn.Text, FilterValue = value.ToString(), FriendlyName = $"Quick Filter By {eColumn.Text} <> '{value}'" }; ret.Add(new Tuple <string, List <QuickFilterValues> >($"Quick Filter By {eColumn.Text} = '{value}'", new List <QuickFilterValues> { quickPositive })); ret.Add(new Tuple <string, List <QuickFilterValues> >($"Quick Filter By {eColumn.Text} <> '{value}'", new List <QuickFilterValues> { quickNegative })); ret.Add(new Tuple <string, List <QuickFilterValues> >($"Create new filter containing {eColumn.Text} = '{value}'", new List <QuickFilterValues> { new QuickFilterValues { NegativeFilter = false, ColumnName = eColumn.Text, FilterValue = value.ToString(), ToBeModifiedInFilterEditor = true } })); return(ret); }
private DateTime GetDateColumnGetter(GenericDataWrapper model) { return(model.DateTime1); }