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); }
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); }
//------------------------------------------------------------------------------ public bool NtfLoadVerFile(string csvFile) { VerItemGrp grp = VerItemGrp.CreateVerItemGrp(csvFile); if (grp != null) { mItemGrp.Add(csvFile.ToLower(), grp); return(true); } return(false); }
//------------------------------------------------------------------------------ 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); }
//------------------------------------------------------------------------------ // 版本文件比较 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); */ }
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); } }
//------------------------------------------------------------------------------ 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()); }