Exemplo n.º 1
0
 public LogFile(string fileName, DataBlock0 dataBlock0, DataBlock1 dataBlock1, DataBlock2 dataBlock2)
 {
     this.fileName   = fileName;
     this.dataBlock0 = dataBlock0;
     this.dataBlock1 = dataBlock1;
     this.dataBlock2 = dataBlock2;
 }
Exemplo n.º 2
0
        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);
        }