标题:文件的读写问题(一行一行地逐步换行读,一行一行地逐步换行写)怎样实现啊 ...
只看楼主
ding_inshili
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-9-13
 问题点数:0 回复次数:0 
文件的读写问题(一行一行地逐步换行读,一行一行地逐步换行写)怎样实现啊?

readfrom.txt:内容 line1 tester1 0000 20071001224510 20071002083122 20060322
- >writeto.txt:运行后内容 line1 tester1 0000 20071001224510 20071002083122 20060322
- >write3.doc:运行后内容 abcdefghijklmnopqrstuvwxyz0123456789+-*/



上述readfrom.txt为原始文件,而writeto.txt,write3.txt是新建立的文件.所用的代码如下



char* pFileNamer="readfrom.txt";//读文件名称
char* pFileNamew="writeto.txt"; //写文件名称
char* pFileName3="writeto3.doc";//另一写名称
char str1[100]; //缓冲字符串
CString str2="abcdefghijklmnopqrstuvwxyz0123456789+-*/";

TRY
{//先打开各个文件
CFile filer(pFileNamer, CFile::modeRead);
CFile filew(pFileNamew, CFile::modeCreate ¦CFile::modeWrite);
CFile file3(pFileName3, CFile::modeCreate ¦CFile::modeWrite);
//先定位再读写
filer.SeekToBegin();
filew.SeekToBegin();
filer.Read(str1, 5);
filew.Write(str1,5);
//先定位再读写
filer.Seek(6,CFile::begin);
filew.Seek(6,CFile::begin);
filer.Read(str1, 7);
filew.Write(str1,7);
//
filer.Seek(14,CFile::begin);
filew.Seek(14,CFile::begin);
filer.Read(str1, 4);
filew.Write(str1,4);
//
filer.Seek(19,CFile::begin);
filew.Seek(19,CFile::begin);
filer.Read(str1, 14);
filew.Write(str1,14);
//
filer.Seek(34,CFile::begin);
filew.Seek(34,CFile::begin);
filer.Read(str1, 14);
filew.Write(str1,14);
//
filer.Seek(49,CFile::begin);
filew.Seek(49,CFile::begin);
filer.Read(str1, 8);
filew.Write(str1,8);
//
file3.Write(str2, strlen(str2));
//最后关闭各个文件
filer.Close();
filew.Close();
file3.Close();
}

CATCH(CFileException,e)
{
#ifdef _DEBUG
afxDump < <"File could not be opened" < <e- >m_cause < <"\n";
#endif
}
END_CATCH



问:?
如果我想从readfrom.txt读下一行数据,然后把它写入writeto.txt中相应的地方,那我怎样进行定位啊,(即怎样结束本行,而使文件定位函数在2nd行,3rd行起作用啊)?
我的意思也就是怎样从 "一个文件" 中直接读第N行中的数据,然后将其直接写入 "另一个文件" 的第i行

比如:
我想从readfrom.txt 内容如下:中读部分数据
1st line data:line1 tester1 0000 20071001224510 20071002083122 20060322 British 伯明汉.英国
2nd line data:line1 tester2 00A0 20071001224500 20071002083102 20060322 Hitachi ShenZhen(深圳)
3rd line data:line1 tester3 0000 20071001224010 20071002083120 20060322 ###### 上海.蒲东

我想让文件writeto.txt内容如下:
1st line data:line1 tester1 0000 20071001224510 20071002083122 20060322
2nd line data:line1 tester2 00A0 20071001224500 20071002083102 20060322
3rd line data:line1 tester3 0000 20071001224010 20071002083120 20060322

那我该如何处理呢?热情期待高手点拨!!!

搜索更多相关主题的帖子: txt 文件 char readfrom 
2007-10-03 20:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-174882-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.632560 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved