コード例 #1
0
        public static CodeResourceRef[] AnalyzeCodeFile(string[] Categories,string FilePath)
        {

            try
            {
                StreamReader sr = new StreamReader(FilePath);
                int nLineNumber = 1;
                List<CodeResourceRef> listCRR = new List<CodeResourceRef>();
                while (!sr.EndOfStream)
                {
                    string sLine = sr.ReadLine();
                    foreach (var c in Categories)
                    {
                        int start = sLine.IndexOf("R." + c + ".");
                        if (start >= 0)
                        {
                            int end = sLine.LastIndexOfAny(ValidVariableCharacters());
                            string sRef = sLine.Substring(start, (end - start)+1);
                            CodeResourceRef crr = new CodeResourceRef();
                            crr.ClassFile = Path.GetFileName(FilePath);
                            crr.CodeLineNumber = nLineNumber.ToString();
                            crr.CodePosistion = start.ToString();
                            ResourceRef rr = new ResourceRef();
                            rr.Category = c;
                            rr.RefId = sRef;
                            rr.RefName = sRef.Split('.')[2];
                            crr.Ref = rr;
                            listCRR.Add(crr);

                        }


                    }
                    nLineNumber++;

                }
                sr.Close();
                return listCRR.ToArray();
            }
            catch (System.Exception ex)
            {

            }


            return null;
        }
コード例 #2
0
        public static CodeResourceRef[] AnalyzeCodeFile(string[] Categories, string FilePath)
        {
            try
            {
                StreamReader           sr          = new StreamReader(FilePath);
                int                    nLineNumber = 1;
                List <CodeResourceRef> listCRR     = new List <CodeResourceRef>();
                while (!sr.EndOfStream)
                {
                    string sLine = sr.ReadLine();
                    foreach (var c in Categories)
                    {
                        int start = sLine.IndexOf("R." + c + ".");
                        if (start >= 0)
                        {
                            int             end  = sLine.LastIndexOfAny(ValidVariableCharacters());
                            string          sRef = sLine.Substring(start, (end - start) + 1);
                            CodeResourceRef crr  = new CodeResourceRef();
                            crr.ClassFile      = Path.GetFileName(FilePath);
                            crr.CodeLineNumber = nLineNumber.ToString();
                            crr.CodePosistion  = start.ToString();
                            ResourceRef rr = new ResourceRef();
                            rr.Category = c;
                            rr.RefId    = sRef;
                            rr.RefName  = sRef.Split('.')[2];
                            crr.Ref     = rr;
                            listCRR.Add(crr);
                        }
                    }
                    nLineNumber++;
                }
                sr.Close();
                return(listCRR.ToArray());
            }
            catch (System.Exception ex)
            {
            }


            return(null);
        }
コード例 #3
0
        public static ResourceRef[] UnusedResources(ResourceRef[] RRs, CodeResourceRef[] TotalCRR)
        {

            List<ResourceRef> listUnusedRR = new List<ResourceRef>();

            foreach (var rr in RRs)
            {
                if (!RRinCRR(rr, TotalCRR))
                    listUnusedRR.Add(rr);
            }


            return listUnusedRR.ToArray();

        }
コード例 #4
0
        private static bool RRinCRR(ResourceRef RR, CodeResourceRef[] CRRs)
        {
            foreach (var crr in CRRs)
            {
                if (crr.Ref.RefId.Equals(RR.RefId))
                    return true;
            }
            return false;

        }