private void OutputToFile(IList <Log> logdata, string filepath) { var csv = new CsvTable(); var header = new List <string>(); header.Add("LineId"); header = header.Concat(this.LogFormatHeader).ToList(); header.Remove("Content"); header.Add("Content"); header.Add("EventId"); header.Add("EventTemplate"); header.Add("ParameterList"); csv.AppendLine(header); foreach (var log in logdata) { var line = new List <object>(); var template = this.Model.Lookup(log.LogId); //template.ApplyToLogData(log); line.Add(log.LogId); line = line.Concat(log.FormatLog.Where(x => x.Key != "Content").Select(x => "\"" + x.Value + "\"").ToArray()).ToList(); line.Add("\"" + log.FormatLog["Content"].Replace("\"", "\'") + "\""); line.Add(template.TemplateId); line.Add("\"" + template.ToString().Replace("\"", "\'") + "\""); line.Add("\"" + string.Join(",", template.Match(log)).Replace("\"", "\'") + "\""); csv.AppendLine(line); } csv.SaveFile(filepath); }
/// <summary> /// CSVファイルに1行追加する。 /// CSVファイルを読み込まずに何も考えずに1行appendする。 /// </summary> /// <param name="filePath"></param> /// <param name="line"></param> private CsvTable AppendLine(string filePath, IEnumerable <string> line) { var csv = new CsvTable() { Encode = Encode }; try { csv.AppendLine(filePath, line); } catch (Exception ex) { TheApp.app.MessageShow(ex); } return(csv); }