예제 #1
0
        public spLogBuff[] returnSpLogLineArray(FileStream spLogFile, uint logCount)
        {
            spLogBuff[] spLogLineArray = new spLogBuff[logCount];
            spLogFile.Position = logHeader.dwFirstLog;
            MFCStringReader strRead = new MFCStringReader(spLogFile);

            //
            for (int i = 0; i < logHeader.dwLogCount; i++)
            {
                spLogBuff spLogLine = new spLogBuff();
                try
                {
                    spLogLine.dwNextLogOffset = strRead.ReadUInt32();
                    spLogLine.dwPreLogOffset  = strRead.ReadUInt32();
                    spLogLine.dwNowLogOffset  = strRead.ReadUInt32();
                    spLogLine.dwCurIndex      = strRead.ReadUInt32();

                    spLogLine.nGrade = strRead.ReadInt32();
                    //int u = Convert.ToInt32(logCount);
                    if (spLogLine.nGrade == 0)
                    {
                        //Array.Resize(ref spLogLineArray, i);
                        //break;
                    }
                    spLogLine.dwProcessId  = strRead.ReadUInt32();
                    spLogLine.dwThreadId   = strRead.ReadUInt32();
                    spLogLine.year         = strRead.ReadUInt16();
                    spLogLine.month        = strRead.ReadUInt16();
                    spLogLine.day          = strRead.ReadUInt16();
                    spLogLine.hour         = strRead.ReadUInt16();
                    spLogLine.minute       = strRead.ReadUInt16();
                    spLogLine.second       = strRead.ReadUInt16();
                    spLogLine.milisecond   = strRead.ReadUInt16();
                    spLogLine.csModuleNAme = strRead.ReadCString();
                    spLogLine.csSubSystem  = strRead.ReadCString();
                    spLogLine.csType       = strRead.ReadCString();
                    spLogLine.csInfo       = strRead.ReadCString();
                    spLogLine.fileName     = spLogFile.Name;
                    if (spLogLine.nGrade != 0)
                    {
                        spLogLineArray[i] = spLogLine;
                    }
                }
                catch (EndOfStreamException ex)
                {
                    break;
                }
            }


            spLogLineArray = spLogLineArray.Where(x => x != null).ToArray();
            //16063-16064
            return(spLogLineArray);
        }
예제 #2
0
        private void button2_Click_2(object sender, EventArgs e)
        {
            List <spLogBuff[]> spLogLines      = new List <spLogBuff[]>();
            List <spLogBuff>   spLogErrorLines = new List <spLogBuff>();

            int           rowindex    = dataGridView1.CurrentCell.RowIndex;
            int           columnindex = dataGridView1.CurrentCell.ColumnIndex;
            List <string> errorCodes  = new List <string>();
            string        physicalDev = dataGridView1.Rows[rowindex].Cells[columnindex].Value.ToString();


            foreach (string spLogFileNameStr in spLogFileNames)
            {
                spLogBuff[] spLogLinesArray = createFileStreamHeaderSpLogLineArray(spLogFileNameStr);
                spLogLines.Add(spLogLinesArray);
            }
            spLogBuff spLogLineR = new spLogBuff();

            foreach (spLogBuff[] spLogLineArray in spLogLines)
            {
                foreach (spLogBuff spLogLine in spLogLineArray)
                {
                    spLogLineR = spLogLine;
                    if (physicalDev == spLogLine.csModuleNAme)
                    {
                        string[] stringSeparators = new string[] { "\r\n" };
                        string[] cuParsedArray    = spLogLine.csInfo.Split(stringSeparators, StringSplitOptions.None);

                        foreach (string str in cuParsedArray)
                        {
                            if ((str.Contains("iLogicCode") || str.Contains("iPhyCode")) && (!str.Contains("iLogicCode: 0") && !str.Contains("iPhyCode: 0")))
                            {
                                if (!errorCodes.Contains(str))
                                {
                                    errorCodes.Add(str);
                                    spLogErrorLines.Add(spLogLine);
                                }
                            }
                        }
                    }
                }
            }

            foreach (spLogBuff spLogErrorLine in spLogErrorLines)
            {
                richTextBox1.Text += spLogErrorLine.csInfo + "\r\n";
                richTextBox1.Text += parseOperations.extractDateTimeFromSpLogLine(spLogErrorLine) + "\r\n";
                richTextBox1.Text += "--------------------------------------------------------------";
            }
        }