bool Cx_TextUtil::AnsiToUnicode(const std::wstring& filename, UINT codepage) { bool bRet = false; BYTE head[5]; std::wstring content; if (ReadTextFile(head, content, filename, 16, codepage)) { bRet = (0xFF == head[0] && 0xFE == head[1]) || SaveTextFile(content, filename, true); } return bRet; }
bool Cx_TextUtil::UnicodeToAnsi(const std::wstring& filename, UINT codepage) { BYTE head[5] = { 0, 0, 0, 0, 0 }; DWORD dwBytesRead = GetHeadBytes(filename, head); bool bRet = true; if (dwBytesRead > 2 && (0xFF == head[0] && 0xFE == head[1])) { std::wstring content; bRet = ReadTextFile(content, filename) && SaveTextFile(content, filename, false, codepage); } return bRet; }
void CBatchTextDlg::OnBnStartClicked() { if (m_VarTbl.empty()) { return; } //处理文件内容模式 CString str; m_ctrlPattern.GetWindowText(str); CStringW strContent(str); m_ContPat.clear(); ParsePattern(strContent, m_ContPat); //处理文件名模式 m_ctrlFileName.GetWindowText(str); CStringW strFileName(str); m_FilePat.clear(); ParsePattern(strFileName, m_FilePat); //处理目标文件夹 CString strFolder; m_ctrlFolder.GetWindowText(strFolder); if (FALSE == PathFileExists(strFolder)) { CreateDirectory(strFolder, NULL); } if (strFolder[strFolder.GetLength() - 1] != _T('\\')) { strFolder.AppendChar(_T('\\')); } if (m_FilePat.size() == 1) { CString strPathName = strFolder + m_FilePat.front(); DeleteFile(strPathName); } //开始生成 for (STRTABLE::iterator i = m_VarTbl.begin(); i != m_VarTbl.end(); ++i) { GenTextFromPat(m_ContPat, *i, strContent); GenTextFromPat(m_FilePat, *i, strFileName); CString strPathName = strFolder + CString(strFileName); SaveTextFile(strPathName, strContent); } }
result_t SaveResNode(CResNode* pNode, const wchar_t* pszFileName) { CUniString str=FormatResNode(pNode, false); return SaveTextFile(pszFileName, str) ? s_ok : e_fail; }