免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1867 | 回复: 5
打印 上一主题 下一主题

[求助]文件操作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-17 20:59 |只看该作者 |倒序浏览
打开一个文件,查找到文件中有特定的字符串*A,然后想要再用自定义的字符串*B替换掉*A,要怎么办呀?

论坛徽章:
0
2 [报告]
发表于 2003-01-17 21:34 |只看该作者

[求助]文件操作

用c还是角本还是命令

命令
在vi界面下使用命令
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin。也可以使用命令:
:%s/usr/bin/bin/g
其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

论坛徽章:
0
3 [报告]
发表于 2003-01-17 21:36 |只看该作者

[求助]文件操作

c
读入一行一行
然后查询这个字符
然后替换
然后写回文件
可以用strchr查找

注意
写回的文件最好是一个临时文件
操作成功后再用临时文件覆盖原文件

论坛徽章:
0
4 [报告]
发表于 2003-01-18 17:17 |只看该作者

[求助]文件操作

用C,
替换的办法我想不出来.
如果*A指向的字符串和*B指向的不一样长,要怎么办?

论坛徽章:
0
5 [报告]
发表于 2003-01-18 19:08 |只看该作者

[求助]文件操作

用c写一个简单的

char strin[100],strout[100],,strbuf[100],*p;
//strin保存读入的strout 保存写出的,p保存找到的地址

int srclen=strlen("要找的串"

fread(strin)

p=strstr(strin,"要找的串";
if(!p)
   continue;  //如果没有就不往下执行

repoffset=p-strin;     //计算替换串开始地址
替换
memcpy(strout,strin,repoffset);//保存前面部分
strout[repoffset]=0;
strcat(strout,"替代串"

strcat(strout,strin+repoffset+srclen)//保存后面部分

write 临时文件


全部操作完后
unlink 原文件
rename 监时文件  原文件


用c++的算法可以直接使用stl的string replace功能

论坛徽章:
0
6 [报告]
发表于 2003-01-19 22:57 |只看该作者

[求助]文件操作

谢谢无双
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP