MFC文件查找与替换

这里写图片描述
1.控件描述:功能在地址栏输入文件名,site数里输入要生的新文件个数,文件保存栏输入要把文件保存的地址。
2.功能,目标文件为固定格式的xxx.clp文件(文本格式的吧?附上一个clp文件)里的所有_S0”字符替换成_SX”(X:如果site数是1,那么X就是1,site是2,X就是1和2)
例子:文件abc0.clp site数=3
生产文件abc1.clp(abc0.clp 里的所有_S0”都替换成了_S1”)
abc2.clp(abc0.clp 里的所有_S0”都替换成了_S2”)
abc3.clp……………………………………………
依次类推。


void CTestDlg::OnBTNReadFilePath() 
{
    CString StrFileName;//="site0.clp";   
    GetDlgItemText(IDC_EDIT_FILE,StrFileName);//获取文件名
    CFile MyFile;
    CString StrFind="_S0";//需要查找的字符串
    CString StrReplace,StrResult;
    int i,FILE_NO = GetDlgItemInt(IDC_EDIT_NUM);
    for(i=1;i<FILE_NO;i++){
        StrReplace.Format(_T("_S%d"),i);//需要替换到的字符串
        StrResult.Format("一共完成 %d 次替换操作",ReplaceText(StrFileName,StrFind,StrReplace,i));   
      //  MessageBox(StrResult,"信息提示",MB_OK);
    }
    MessageBox("替换完成",MB_OK);
}

int CTestDlg::ReplaceText(CString StrFileName, CString StrFind, CString StrReplace,int index)
{   
    CStdioFile newFile,File;
    int Count=0;
    if(!File.Open(StrFileName,CFile::modeRead))   
        return -1;
    CString StrNewFileName;
    StrNewFileName.Format(_T("site%d.clp"),index);//TODO
    if(!newFile.Open(StrNewFileName,CFile::modeCreate|CFile::modeReadWrite))   
        return -1;   
    CString Str;
    while(File.ReadString(Str))   
    {
        Count+=Str.Replace(StrFind,StrReplace);   
        newFile.WriteString(Str+"\n");   
    }   
    File.Close();   
    newFile.Close();   
//  CFile::Remove(StrFileName); 
//  CFile::Rename(StrNewFileName,StrFileName);   
    return Count;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值