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
那我该如何处理呢?热情期待高手点拨!!!