Chinaunix

标题: [求助]文件操作 [打印本页]

作者: 春华    时间: 2003-01-17 20:59
标题: [求助]文件操作
打开一个文件,查找到文件中有特定的字符串*A,然后想要再用自定义的字符串*B替换掉*A,要怎么办呀?
作者: 无双    时间: 2003-01-17 21:34
标题: [求助]文件操作
用c还是角本还是命令

命令
在vi界面下使用命令
:%s#/usr/bin#/bin#g
可以把文件中所有路径/usr/bin换成/bin。也可以使用命令:
:%s/usr/bin/bin/g
其中“”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。
作者: 无双    时间: 2003-01-17 21:36
标题: [求助]文件操作
c
读入一行一行
然后查询这个字符
然后替换
然后写回文件
可以用strchr查找

注意
写回的文件最好是一个临时文件
操作成功后再用临时文件覆盖原文件
作者: 春华    时间: 2003-01-18 17:17
标题: [求助]文件操作
用C,
替换的办法我想不出来.
如果*A指向的字符串和*B指向的不一样长,要怎么办?
作者: 无双    时间: 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功能
作者: 春华    时间: 2003-01-19 22:57
标题: [求助]文件操作
谢谢无双




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2