Esempio n. 1
0
        //============================================================
        // <T>解析*.h文件,查找相应的类的信息。</T>
        //
        // @param fileH 要解析的*.h文件
        // @param classStr 需要匹配的类的类名信息
        // @return 返回匹配到的类的结果。若是没有则返回null
        //============================================================
        public FCppClass ParserFileH(string fileH, string classStr)
        {
            FLineFile lineFileH = new FLineFile(fileH);
            FStrings  lines     = lineFileH;

            for (int n = 0; n < lines.Count; n++)
            {
                if (FCppClass.IsClass(lines, n))
                {
                    string strTemp = lines[n].Trim();
                    int    end     = strTemp.Length;
                    if (strTemp.Contains(':'))
                    {
                        end = strTemp.IndexOf(':');
                    }
                    strTemp = strTemp.Substring(0, end);
                    if (strTemp.Contains(classStr))
                    {
                        int       endIndex = GetPairNum(lines, n);
                        FCppClass cppclass = new FCppClass(lines, n, endIndex);
                        for (int i = n; i < endIndex; i++)
                        {
                            if (FCppField.IsField(lines, i))
                            {
                                FCppField field = new FCppField(lines, i);
                                cppclass.Field.Add(field);
                            }
                        }
                        return(cppclass);
                    }
                }
            }
            return(null);
        }
Esempio n. 2
0
        static void Convert(string inputFileName, string outputFileName)
        {
            FDictionary <string> dateValues = new FDictionary <string>();
            FLineFile            inputFile  = new FLineFile(inputFileName);
            FLineFile            outputFile = new FLineFile();

            foreach (string line in inputFile.Items)
            {
                if (line != null && line.Contains("FPSCounter"))
                {
                    // 解析字符串
                    // 04-10 12:24:50.635: D/FPSCounter(21430): fps=5 span=6
                    //string dateValue = line.Substring(0, 18);
                    //long dateH = RLong.Parse(dateValue.Substring(6, 2));
                    //long dateM = RLong.Parse(dateValue.Substring(9, 2));
                    //long dateS = RLong.Parse(dateValue.Substring(12, 2));
                    string dateValue = "2014-" + line.Substring(0, 14);
                    if (dateValues.Contains(dateValue))
                    {
                        continue;
                    }
                    int    findFps   = line.IndexOf("fps=");
                    int    findEnd   = line.IndexOf(" ", findFps);
                    string fpsValue  = line.Substring(findFps + 4, findEnd - findFps - 4);
                    int    fps       = RInt.Parse(fpsValue);
                    int    findSpan  = line.IndexOf("span=");
                    int    length    = line.Length;
                    string spanValue = line.Substring(findSpan + 5, length - findSpan - 5);
                    int    span      = RInt.Parse(spanValue);
                    Console.WriteLine(dateValue + " Fps=[" + fps + "] Span=[" + span + "]");
                    outputFile.Add(dateValue + "," + fps + "," + span);
                    dateValues.Set(dateValue, line);
                }
            }
            outputFile.SaveFile(outputFileName);
        }
Esempio n. 3
0
        //============================================================
        // <T>将文件转化为以行划分的字符串集合。</T>
        //
        // @param path 文件的绝对路径
        // @return 将文件转化之后的字符串集合
        //============================================================
        public static FStrings GetLines(string path)
        {
            FLineFile lineFileH = new FLineFile(path);

            return(lineFileH);
        }
Esempio n. 4
0
        //============================================================
        // <T>目标文件内的代码字符串以行来划分。</T>
        //
        // @param strFile 需要划分的代码串
        // @return 划分后的字符串集合
        //============================================================
        public FStrings GetLines(string strFile)
        {
            FLineFile linefile = new FLineFile(strFile);

            return(linefile);
        }