public string[] ParseStringToArrayObject(string line) { string[] result; LineLog logData = new LineLog(); result = logData.ParseStringToArrayObject(line); return(result); }
public static DictLog ParseDictionaryLog(DirectoryInfo subDirLog) { DictLog dictLog = new DictLog(); // 6d184c14-f352-49bd-9baa-740acf9eca79 string patternGUID = "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"; Regex regex = new Regex(patternGUID); // разберем словарь ЖР foreach (FileInfo file in subDirLog.GetFiles("*.lgf")) { // разрешаем запись другим потокам using (var fstream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (StreamReader sreader_dict = new StreamReader(fstream)) { // первые 2 строки служебные // 1 тип лога 1CV8LOG(ver 2.0) // 2 идентификатор базы 28319a74-e5ca-487b-bd0d-c9207a1dc5f0 string lineDictLog = ""; while (!sreader_dict.EndOfStream) { string line = sreader_dict.ReadLine(); // заголовки пропускаем if (line.Contains("1CV8LOG(ver 2.0)") || (regex.Matches(line).Count != 0)) { continue; } //TODO: есть похожий метод в LogRecordProcessing, подумать над их объединением if (ThisNewLineDictLog(lineDictLog) && ThisEndLineDictLog(lineDictLog) && lineDictLog.Length != 0) { // собрали строку лога, разберем ее try { LineLog lineLog = new LineLog(); string[] arrLine = lineLog.ParseStringToArrayObject(lineDictLog); addRecordDictLog(arrLine, dictLog); // обработали прошлую строку, обновим чтоб текущая обработалась при следующей итерации lineDictLog = line; } catch (Exception e) { string error = e.Message + " record log:" + line; Log.AddRecord("DicLogProcessing", error); } } else { lineDictLog += line; } } // обработаем хвост if (lineDictLog.Length != 0) { try { LineLog lineLog = new LineLog(); string[] arrLine = lineLog.ParseStringToArrayObject(lineDictLog); addRecordDictLog(arrLine, dictLog); } catch (Exception e) { string error = e.Message + " record log:" + lineDictLog + "; Файл логов " + file.FullName; Log.AddRecord("DicLogProcessing", error); } } } } return(dictLog); }