private void Merge(CommandUtil comUtil, List <TranslateUnit3RD> units) { string[] filenames = comUtil.Extract(m_peFileName); string menurc = null, stringrc = null, dialogrc = null, versionrc = null; string menures = null, stringres = null, dialogres = null, versionres = null; try { // menu.rc menurc = filenames[0]; menures = menurc.Substring(0, menurc.LastIndexOf(".")) + ".res"; MergeOneFile(comUtil, units, menurc, menures, TranslateUnitType.MenuType, m_peFileName, m_newFileName0); // string.rc stringrc = filenames[1]; stringres = stringrc.Substring(0, stringrc.LastIndexOf(".")) + ".res"; MergeOneFile(comUtil, units, stringrc, stringres, TranslateUnitType.StringType, m_newFileName0, m_newFileName1); // dialog.rc dialogrc = filenames[2]; dialogres = dialogrc.Substring(0, dialogrc.LastIndexOf(".")) + ".res"; MergeOneFile(comUtil, units, dialogrc, dialogres, TranslateUnitType.DialogType, m_newFileName1, m_newFileName2); // version.rc versionrc = filenames[3]; versionres = versionrc.Substring(0, versionrc.LastIndexOf(".")) + ".res"; MergeOneFile(comUtil, units, versionrc, versionres, TranslateUnitType.VersionType, m_newFileName2, m_newFileName3); File.Copy(m_newFileName3, m_peFileName, true); } finally { if (!AppConfig.KeepTempFiles) { DeleteFile(menurc); DeleteFile(stringrc); DeleteFile(dialogrc); DeleteFile(versionrc); DeleteFile(menures); DeleteFile(stringres); DeleteFile(dialogres); DeleteFile(versionres); DeleteFile(m_newFileName0); DeleteFile(m_newFileName1); DeleteFile(m_newFileName2); DeleteFile(m_newFileName3); } } }
private List <TranslateUnit3RD> Extract(CommandUtil comUtil) { List <TranslateUnit> resultSelf = ParsePEFile(); string[] filenames = comUtil.Extract(m_peFileName); List <TranslateUnit3RD> result = new List <TranslateUnit3RD>(); string menurc = null, stringrc = null, dialogrc = null, versionrc = null; try { // menu.rc menurc = filenames[0]; ExtractOneFile(result, menurc, TranslateUnitType.MenuType, resultSelf); // string.rc stringrc = filenames[1]; ExtractOneFile(result, stringrc, TranslateUnitType.StringType, resultSelf); // dialog.rc dialogrc = filenames[2]; ExtractOneFile(result, dialogrc, TranslateUnitType.DialogType, resultSelf); // version.rc versionrc = filenames[3]; ExtractOneFile(result, versionrc, TranslateUnitType.VersionType, resultSelf); } finally { if (!AppConfig.KeepTempFiles) { DeleteFile(menurc); DeleteFile(stringrc); DeleteFile(dialogrc); DeleteFile(versionrc); } } return(result); }