OperationFile.h // COperationFile.h : header file //
using namespace std;
class COperationFile { // Construction public: COperationFile(); ~COperationFile();
public: void OnFileFilling(In CString strFilePath , In BOOL bIsAddress=TRUE); /* 函數功能:刪除重復的字符串(最簡單的刪除方法,有時間修改為二分法排序刪除) * vctStrSaveFileData:輸入輸出參數 */ void deleteRepeatString(Inout vector& vctStrSaveFileData); void SetFileReadWrite( In CString cstrFileFullPath ); string CString2string(CString &strSrc); /* 函數功能:處理輸入字符串,去掉與命令無關的信息 * strSrc:輸入源字符串 * strReqHeader:“問”字符串 * bIsAns:是否為“回”字符串 * 返回值:處理后的字符串,使用vector的原因是一些回答命令會超過7個字符,這個時候需要把超過7個字符的命令拆分為不能大于7個字符的命令串 */ vector DealString(In CString strSrc, In CString strReqHeader, BOOL bIsAns=FALSE); };
OperationFile.cpp // COperationFile.cpp : implementation file //
COperationFile::COperationFile( ) { }
COperationFile::~COperationFile( ) { }
void COperationFile::OnFileFilling(In CString strFilePath, In BOOL bIsAddress/=TRUE/) { // TODO: Add your control notification handler code here int nRet=0; CString strReq=_T(“”); vector vctDealString; vector vctStrSaveFileData;
CStdioFile stdioFile;CFileException e;nRet = stdioFile.Open(strFilePath, CFile::modeNoTruncate | CFile::modeReadWrite | CFile::shareDenyNone, &e );if (!nRet){ AfxMessageBox(_T("文件打開失敗!!!")); return;}stdioFile.SeekToBegin();CString strTemp;while (stdioFile.ReadString(strTemp)){ if (-1 != strTemp.Find(_T("Req:")) ) { vctDealString = DealString(strTemp,_T("")); strReq=vctDealString[0]; continue; } if (-1 == strTemp.Find(_T("Ans:")) ) { continue; } if (strReq.GetLength() > 0 ) { vctDealString = DealString(strTemp, strReq.Mid(0, 14), TRUE); vctStrSaveFileData.push_back(strReq); for (int k=0; k < vctDealString.size(); k++) { vctStrSaveFileData.push_back(vctDealString[k]); } }}stdioFile.Flush();stdioFile.Close();deleteRepeatString(vctStrSaveFileData);strFilePath+=_T(".txt");CStdioFile newFile;newFile.Open(strFilePath,CFile::modeCreate | CFile::modeWrite , &e );if (!nRet){ AfxMessageBox(_T("文件創建失敗!!!")); return;}for (int k = 0; k < vctStrSaveFileData.size(); k++){ if ( !vctStrSaveFileData[k].IsEmpty() ) { newFile.WriteString(vctStrSaveFileData[k]); newFile.WriteString(_T("/r/n")); if ( vctStrSaveFileData[k+1].Find(_T("Req:")) != -1 ) { newFile.WriteString(_T("/r/n")); } } }newFile.Flush();newFile.Close();AfxMessageBox(_T("文件處理完成"));}
vector COperationFile::DealString(In CString strSrc, In CString strReqHeader, BOOL bIsAns/=FALSE/) { int nValidCmd; vector vctStrSaveCmd; CString strTemp=strSrc, strAnsHeader=_T(“”), strAnsBody=_T(“”); CString x20x09=_T(” Receive”); if (!bIsAns) strTemp=strTemp.Mid(0, strTemp.Find(x20x09));
}
void COperationFile::deleteRepeatString(vector& vctStrSaveFileData) { // map
}
|
新聞熱點
疑難解答