VC6.0的CFile类的seek的使用,(文件定位操作)!急

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:31:49
用seek确实可以定位到你想要的文件中的位置,但是我在指定的位置添加字符串时,字符串是添加成功了,但是这个字符串却把相应位置的字符给覆盖掉了,这是为什么啊?
我想要在指定的位置添加一个字符串,当然,在指定位置后面的内容都得后移.请帮帮我好吗?真的很急!谢谢你们了!
代码如下:
CFile file;
file.Open(SaveXmlPath, CFile::modeReadWrite, NULL);
file.Seek(41,CFile::begin); //从文件头开始往下移动41字节
char pbuf[10] = "1234567890";
file.Write( pbuf, 10 );
file.Close();
请赐教!

CFile类本来就是这样直接写硬盘的,当然不会有你想象的“插入”模式和“改写”模式了。
如果要插入,可以把第41个字符后面的所有字符先存起来,然后把要插入的字符追加到文件尾,最后再把刚才存起来的字符加上。
只能这样了。

我是提问题的那个人.
但是我后面的字符太大了,有1M多呢,那要都存起来,然后再添加吗?感觉效果应该不是很好.其实我是想往 XML 文件中添加一个字符串.XML文件内容如下:
<?xml version="1.0" encoding="gb2312" ?>
<!DOCTYPE bookInformation [
<!ELEMENT bookInformation (book)* >
<!ELEMENT book ( title, author+,press, price,resume*) >
<!ELEMENT title (#PCDATA) >
<!ELEMENT author (#PCDATA) >
<!ELEMENT press (#PCDATA) >
<!ELEMENT price (#PCDATA) >
<!ELEMENT resume (#PCDATA) >
<!ATTLIST price 货币单位 ( 人民币 | 英镑 | 美元) '人民币'>
] >
<bookInformation>
<book>
<title>电子商务基础</title >
<author>唐春林</author>
<author>唐春</author>
<press>科学出版社</press>
<price 货币单位="人民币">