示例#1
0
    public void NtfWriteToFile(string szfile)
    {
        /*
         * VerItemGrp.NtfWriteToFile(szfile + "_same.csv",   mSames);
         *
         * VerItemGrp.NtfWriteToFile(szfile + "_difSrc.csv", mDifSrc);
         * VerItemGrp.NtfWriteToFile(szfile + "_difDis.csv", mDifDis);
         *
         * VerItemGrp.NtfWriteToFile(szfile + "_lstSrc.csv", mLstSrc);
         * VerItemGrp.NtfWriteToFile(szfile + "_lstDis.csv", mLstDis);
         */

        List <string> hdr = VerItemGrp.NtfGetCsvHdr(); // 表头
        Dictionary <int, List <string> > rcd = new Dictionary <int, List <string> >();

        rcd.Add(rcd.Count, NtfAddCsvMsg(""));
        rcd.Add(rcd.Count, NtfAddCsvMsg("# 单一存在(File1)"));
        GenCsvFile(ref rcd, mLstSrc);
        rcd.Add(rcd.Count, NtfAddCsvMsg("# 单一存在(File2)"));
        GenCsvFile(ref rcd, mLstDis);

        rcd.Add(rcd.Count, NtfAddCsvMsg(""));
        rcd.Add(rcd.Count, NtfAddCsvMsg("# MD5不一样"));
        GenCsvFile(ref rcd, mDifSrc);
        GenCsvFile(ref rcd, mDifDis);

        rcd.Add(rcd.Count, NtfAddCsvMsg(""));
        rcd.Add(rcd.Count, NtfAddCsvMsg("# 完全一样"));
        GenCsvFile(ref rcd, mSames);
        CsvParser.writeCsvFile(szfile, hdr, rcd);
    }
示例#2
0
    static public VerItemGrp CreateVerItemGrp(string file)
    {
        CsvParser csvPrs = new CsvParser();

        if (!csvPrs.loadCsvFile(file, true))
        {
            return(null);
        }

        VerItemGrp grp = new VerItemGrp();

        grp.mCsvFile = file;

        string sItm   = "";
        int    nCount = csvPrs.getRecordsCounts();

        for (int i = 0; i < nCount; ++i)
        {
            csvPrs.GetString(out sItm, i, "File");
            if (sItm.Length > 0)
            {
                RyVerItem itm = new RyVerItem();
                csvPrs.GetString(out itm.mItmMd5, i, "MD5");
                csvPrs.GetString(out itm.mCurVer, i, "CurVer");
                csvPrs.GetString(out itm.mPreVer, i, "PreVer");
                csvPrs.GetString(out itm.mGenTM, i, "GenTM");
                itm.mItmFile = sItm;
                grp.NtfAddVerItem(itm.mItmFile, itm);
                continue;
            }
            Debug.LogWarning("LOST [File] Index = " + i);
        }
        return(grp);
    }
示例#3
0
    //------------------------------------------------------------------------------
    public bool NtfLoadVerFile(string csvFile)
    {
        VerItemGrp grp = VerItemGrp.CreateVerItemGrp(csvFile);

        if (grp != null)
        {
            mItemGrp.Add(csvFile.ToLower(), grp);
            return(true);
        }
        return(false);
    }
示例#4
0
    //------------------------------------------------------------------------------
    void NtfRefreshItemVer()
    {
        mItemVer.Clear();               //
        for (int i = mVerList.Count - 1; i >= 0; --i)
        {
            VerItemGrp grp = VerItemGrp.CreateVerItemGrp(mVerList[i]);
            grp.NtfFatchItemVer(ref mItemVer);
        }

        //string file = "PackVers/asdfasdf.csv";
        //VerItemGrp.NtfWriteToFile(file, mItemVer);
    }
示例#5
0
    //------------------------------------------------------------------------------
    // 版本文件比较
    public void NtfCompareItemGrpFile(string sfile, string dfile)
    {
        VerItemGrp sGrp = VerItemGrp.CreateVerItemGrp(sfile);
        VerItemGrp dGrp = VerItemGrp.CreateVerItemGrp(dfile);

        mpCmpUtl.NtfCompare(sGrp, dGrp);

        /*
         * // 比较结果存文件
         * string sNm = ArchiveUtil.GetFileName(sfile);
         * string dNm = ArchiveUtil.GetFileName(dfile);
         * string file = "PackVers/" + sNm + "-" + dNm + ".csv";
         * mpCmpUtl.NtfWriteToFile(file);
         */
    }
示例#6
0
    public List <RyVerItem> mLstDis = new List <RyVerItem>();  // 目标 在 源 VerItemGrp 里找不到

    // 源数据   = mSameLst + mDifDis + mLstSrc
    // 目标数据 = mSameLst + mDifSrc + mLstDis


    //------------------------------------------------------------------------------
    // 比较这两组数据
    public void NtfCompare(VerItemGrp sGrp, VerItemGrp dGrp)
    {
        mSames.Clear();
        mDifSrc.Clear();
        mDifDis.Clear();
        mLstSrc.Clear();
        mLstDis.Clear();

        Dictionary <string, RyVerItem> sDic = sGrp.GetVerItems();
        Dictionary <string, RyVerItem> dDic = dGrp.GetVerItems();

        foreach (KeyValuePair <string, RyVerItem> row in sDic)
        {
            RyVerItem dItm  = null;
            RyVerItem sItm  = row.Value;
            string    szKey = sItm.mItmFile.ToLower();
            if (dDic.TryGetValue(szKey, out dItm))
            {
                // dGrp 里存在同文件名的文件
                if (RyVerItem.IsRyEqual(sItm, dItm))
                {
                    mSames.Add(sItm); // MD5一致
                }
                else
                {
                    // MD5不一致
                    mDifSrc.Add(sItm);
                    mDifDis.Add(dItm);
                }

                dDic.Remove(szKey); // 剩下的就是 sGrp 里不存在的
                continue;
            }
            mLstSrc.Add(sItm);
        }
        foreach (KeyValuePair <string, RyVerItem> row in dDic)
        {
            mLstDis.Add(row.Value);
        }
    }
示例#7
0
    //------------------------------------------------------------------------------
    public void GenItemGrp(string csvFile, List <string> sList)
    {
        //string sVer = GenNextVer();
        string     sVer   = ArchiveUtil.GetFileName(csvFile);
        string     format = "yyyy-MM-dd HH:mm:ss";
        VerItemGrp grp    = new VerItemGrp();

        grp.mCsvFile = csvFile;
        for (int i = 0; i < sList.Count; ++i)
        {
            DateTime  dt  = DateTime.Now;
            string    sf  = sList[i];
            RyVerItem itm = new RyVerItem();
            itm.mItmFile = ArchiveUtil.NtfPathBeginAssets(sf);
            itm.mItmMd5  = GenMD5Util.NtfGenFileMD5(sf).ToUpper();
            itm.mGenTM   = dt.ToString(format);
            OnTestVer(ref itm, sVer);
            grp.NtfAddVerItem(itm.mItmFile, itm);
        }
        mItemGrp.Add(csvFile.ToLower(), grp);
        VerItemGrp.NtfWriteToFile(csvFile, grp.GetVerItems());
    }