public LogFile(string fileName, DataBlock0 dataBlock0, DataBlock1 dataBlock1, DataBlock2 dataBlock2) { this.fileName = fileName; this.dataBlock0 = dataBlock0; this.dataBlock1 = dataBlock1; this.dataBlock2 = dataBlock2; }
public static List <LogFile> Parse(ConfigFile configFile) { List <LogFile> logFiles = new List <LogFile>(); foreach (string pathToLog in configFile.PathToLogs) { string line; using (StreamReader sr = new StreamReader(pathToLog, Encoding.Default)) { skipLine(sr); // чтение нулевого блока данных line = skipEmptyLines(sr); Dictionary <string, DataLine> dataLines = new Dictionary <string, DataLine>(); KeyValuePair <string, DataLine> dataLine; do { dataLine = parseBlock0String(line, configFile.Block0Params); dataLines.Add(dataLine.Key, dataLine.Value); }while ((line = sr.ReadLine().Trim()) != ""); DataBlock0 dataBlock0 = new DataBlock0(dataLines); skipEmptyLines(sr); skipLine(sr); line = skipEmptyLines(sr); // чтение первого блока данных string[] tabTypes = dataBlock0.getTabTypes(); int countOfTabTypes = tabTypes.Length; int[,] countOfTransitions = new int[countOfTabTypes, countOfTabTypes]; do { parseBlock1String(line, tabTypes, ref countOfTransitions); }while ((line = sr.ReadLine().Trim()) != ""); DataBlock1 dataBlock1 = new DataBlock1(countOfTransitions, tabTypes); skipEmptyLines(sr); skipLine(sr); line = skipEmptyLines(sr); // чтение второго блока данных dataLines = new Dictionary <string, DataLine>(); do { dataLine = parseBlock2String(line, configFile.Block2Params); dataLines.Add(dataLine.Key, dataLine.Value); }while ((line = sr.ReadLine().Trim()) != ""); DataBlock2 dataBlock2 = new DataBlock2(dataLines); LogFile logFile = new LogFile(Path.GetFileName(pathToLog), dataBlock0, dataBlock1, dataBlock2); logFiles.Add(logFile); } } return(logFiles); }