比如一个文本文件格式如下:
1 a
2 b
3 c
.................
完成功能:
1 a为一个文件
2 b为一个文件.....
FILE *fp;
fp=fopen("c:\\a.txt","r+");//打开文件 CString strRead;
CString strResult;
CString strOrd;
CString strTitle;
int count=2;//行首从1开始.//如果超过8则程序只算到8为止,以下9.10.11....都不正常了.
int fileName=1; strOrd.Format("%d",count++);//初始化为找2开始
if(fp!=NULL)
{
while(!feof(fp))
{
strRead=fgetc(fp);//读取文本
if(strRead==strOrd)
{
strOrd.Format("%d",count++);
strTitle.Format(_T("c:\\%d.txt"),fileName++);
CStdioFile fn(strTitle,CFile::modeCreate | CFile::modeWrite);
fn.Write(strResult,strResult.GetLength()-1);
fn.Close();
strResult="";
}
strResult+=strRead;
}
}
fclose(fp);
//程序读取前8个都正常,到第九个疯了,找半天不知什么原因,大家帮我看看,或者有其它的方法?
1 a
2 b
3 c
.................
完成功能:
1 a为一个文件
2 b为一个文件.....
FILE *fp;
fp=fopen("c:\\a.txt","r+");//打开文件 CString strRead;
CString strResult;
CString strOrd;
CString strTitle;
int count=2;//行首从1开始.//如果超过8则程序只算到8为止,以下9.10.11....都不正常了.
int fileName=1; strOrd.Format("%d",count++);//初始化为找2开始
if(fp!=NULL)
{
while(!feof(fp))
{
strRead=fgetc(fp);//读取文本
if(strRead==strOrd)
{
strOrd.Format("%d",count++);
strTitle.Format(_T("c:\\%d.txt"),fileName++);
CStdioFile fn(strTitle,CFile::modeCreate | CFile::modeWrite);
fn.Write(strResult,strResult.GetLength()-1);
fn.Close();
strResult="";
}
strResult+=strRead;
}
}
fclose(fp);
//程序读取前8个都正常,到第九个疯了,找半天不知什么原因,大家帮我看看,或者有其它的方法?
解决方案 »
- 求助,FileDialog.DoModal()对话框无法弹出
- 多进程编程与多线程编程的区别
- 如何做一个基于COM的插件系统
- CListCtrl闪烁问题 解决后立即给分!
- 父窗口最小化到任务栏后,点托盘显示一个新的对话框,要让这个新生成的对话框显示在最前面。
- js中如何调用参数为指针类型的COM方法
- 急!如何控制IE的菜单??????????????
- 关于CDaoDatabase类的问题
- MFC 在类A中声明的为什么不能在类B之中调用
- MFC 修改属性中的字体大小 对话框的大小就会变化 怎么让它不跟着变
- Remotedata control ,SetSql()funtion
- 为什么现在这么多赴日的
strRead=fgetc(fp);//读取文本你每次只读取一个字节,当数字为两位数(两个字节)时程序就肯定乱了。
//问题出现在没法读取两位数的序号,我试着修改了一下,应该可以了。
// TODO: Add extra validation here
FILE *fp;
fp=fopen("c:\\a.txt","r+");//打开文件 CString strRead;
CString strResult;
CString strOrd;
CString strTitle;
CString Temp;
int count=2;//行首从1开始.//如果超过8则程序只算到8为止,以下9.10.11....都不正常了.
int fileName=1; strOrd.Format("%d",count++);//初始化为找2开始
if(fp!=NULL)
{
while(!feof(fp))
{
Temp = fgetc(fp);//读取文本
if(Temp.GetAt(0) >= '0' && Temp.GetAt(0) <= '9')
{
strRead+=Temp;
continue;
} if(strRead==strOrd)
{
strOrd.Format("%d",count++);
strTitle.Format(_T("c:\\%d.txt"),fileName++);
CStdioFile fn(strTitle,CFile::modeCreate | CFile::modeWrite);
fn.Write(strResult,strResult.GetLength()-1);
fn.Close();
strResult="";
}
strResult+=strRead;
strRead.Empty();
}
}
fclose(fp);