//============================================================ // <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); }
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); }
//============================================================ // <T>将文件转化为以行划分的字符串集合。</T> // // @param path 文件的绝对路径 // @return 将文件转化之后的字符串集合 //============================================================ public static FStrings GetLines(string path) { FLineFile lineFileH = new FLineFile(path); return(lineFileH); }
//============================================================ // <T>目标文件内的代码字符串以行来划分。</T> // // @param strFile 需要划分的代码串 // @return 划分后的字符串集合 //============================================================ public FStrings GetLines(string strFile) { FLineFile linefile = new FLineFile(strFile); return(linefile); }