MFC 实现文件里每一行单独建立一个文件

void CFILESEDlg::OnBnClickedButok()
{
    // TODO: 在此添加控件通知处理程序代码
    CString StrLine;
    GetDlgItemText(IDC_EDITLINE,StrLine);
    int iLine = atoi(StrLine);
    CString StrFile;
    GetDlgItemText(IDC_EDITFILESE,StrFile);

    CString FileName;
    GetDlgItemText(IDC_EDITFILENAME,FileName);

    fstream in(StrFile);
    string line;
    int i,LineBin=0;
    FILE *pb;
    if((pb = fopen(StrFile,"r"))==NULL)
    {
        MessageBox("打开失败!");
    }
    while(!feof(pb))
    {
        char mid = fgetc(pb);
        if(mid =='\n')
            LineBin++;
    }

    if(iLine>LineBin)
    {
        MessageBox("输入行数超过文本行数!");
    }

    if(in) 
    { 
        for(i=0;i < iLine;i++)
        {
            getline(in, line);
            char buf[200];
            if(FileName=="")
            {
                sprintf(buf,"%d.txt",i);
            }
            else
            {
                sprintf(buf,"%s%d.txt",FileName,i);
            }
            FILE *fp = fopen(buf,"w");
            if(NULL == fp)
            {
                return;
            }
            char *p;
            int len = line.length();
            p=(char *)malloc((len+1)*sizeof(char));
            line.copy(p,len,0);
            *(p+len)='\0';
            fputs(p,fp);
            fclose(fp);
        }
    }
    else 
    {
        MessageBox(("找不到文件,请确认路径"));
    }

}


void CFILESEDlg::OnBnClickedButtopenfile()
{
    // TODO: 在此添加控件通知处理程序代码
     CFileDialog *lpszOpenFile;   
     CString FilePathName;
     lpszOpenFile = new CFileDialog
         (TRUE,"","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "所有文件(*.*)|*.*|文件类型(*.txt)|*.txt|");
     if(lpszOpenFile->DoModal() == IDOK )
     {
         FilePathName=lpszOpenFile->GetPathName();
         SetDlgItemText(IDC_EDITFILESE,FilePathName);
     }
}

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值