如何把文件中一段字符删除掉?

liken218 2003-11-27 05:27:51
如何把文件中一段字符删除掉?
文件中为“abcdefghijk”改为"abcdhijk"?
CFile file;
file.Open("c:\aa",CFile::modeWrite);
file.Seek(5,CFile::begin);
file.Write("",3);
不行。。。。。
...全文
100 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liken218 2003-11-28
  • 打赏
  • 举报
回复
to timepalette(时间调色板):是把"efg"全部删除。
timepalette 2003-11-28
  • 打赏
  • 举报
回复
Mmm...
keiven 2003-11-27
  • 打赏
  • 举报
回复
打开文件移动指针到要删除的位置,然后把删除字符后面的字符移动到开始删除的位置.文件的长的也相应的减少了删除的字符数目.
timepalette 2003-11-27
  • 打赏
  • 举报
回复
楼主是想把“abcdefghijk”全部替换为"abcdhijk",还是想把"efg"全部删除???
liken218 2003-11-27
  • 打赏
  • 举报
回复
(fgetc+fputc) /(fgets+fputs)????
能不能说明白点?
program2100 2003-11-27
  • 打赏
  • 举报
回复
(fgetc+fputc) /(fgets+fputs)
liken218 2003-11-27
  • 打赏
  • 举报
回复
如果文件很大,又大都是二进制的东东。
那按wpmsoft(红旗下的蛋)兄所说的方法,能不能给出点代码?
zhucde 2003-11-27
  • 打赏
  • 举报
回复
那你就用标准库里的函数
fread,
fwrite,

那样,先用fseek,然后fwrite是可以
feiniaoliang 2003-11-27
  • 打赏
  • 举报
回复
或者先重新擦掉,再写一次,方法很苯,但是效果不错~~代码就不贴了!!!
wpmsoft 2003-11-27
  • 打赏
  • 举报
回复
版主的意见不错。只是:

如果我的文件很大很大(10G ???),你又该如何操作。用CString也是不行的啦。
如果文件中不全是正规字符,比如说有二进制的东东,有0x00,又如何?
feiniaoliang 2003-11-27
  • 打赏
  • 举报
回复
CFile::modeWrite
换成
CFile::modeReadWrite

zhucde 2003-11-27
  • 打赏
  • 举报
回复
CFile file;
CStirng m_disp;
file.Open("c:\aa",CFile::modeWrite);
file.SeekToBegin();
file.Read(m_disp.GetBufferSetLength(file.GetLength()),file.GetLength());
m_disp.Replace("abcdefghijk","abcdhijk");
file.WriteString(str);
file.Close();
zhucde 2003-11-27
  • 打赏
  • 举报
回复
CFile file;
CStirng m_disp;
file.Open("c:\aa",CFile::modeWrite);
file.SeekToBegin();
file.Read(m_disp.GetBufferSetLength(file.GetLength()),file.GetLength());
m_disp.Replace("abcdefghijk","abcdhijk");
file.WriteString(str);
file.Close();
wpmsoft 2003-11-27
  • 打赏
  • 举报
回复
没什么好的办法,只能先移动指针到欲删除的位置(POS1),再移动指针到后面的地方(POS2)。读出POS2开始的字符,复制到POS1的位置上(即前移)。如此直到文件结束。
最后要修改文件的长度。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧