delphi 简单正则替换 问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:11:33
首先声明本人菜鸟。最近在学习delphi接触到了正则,问题是如果一下的代码要替换的是文件比如说是 a.exe 而不是字符串该如何表达呢?谢谢了分不多都拿出来了。。
uses
PerlRegEx; //uses 正则表达式单元

procedure TForm1.FormCreate(Sender: TObject);
var
reg: TPerlRegEx; //声明正则表达式变量
begin
reg := TPerlRegEx.Create(nil); //建立

reg.Subject := 'sSsS'; //这是要替换的源字符串
reg.RegEx := 's'; //这是表达式, 在这里是准备替换掉的子串
reg.Replacement := '◆'; //要替换成的新串
reg.ReplaceAll; //执行全部替换

ShowMessage(reg.Subject); //返回替换结果: ◆S◆S

FreeAndNil(reg); //或 reg.Free
end;
可能是我表达的不清楚。也就是说如何将a.exe 的内容读入内存,再用利正则表达式搜索替换
再写回原文,能实现吗?麻烦大侠给出例子,不胜感激。

正则表达式只能用于字符串

不好意思,我也是初学,建议你找本书从头到尾学习学习

我是初学者啊 帮不了你

要把一个文件的所有内容读入内存是可以的,当然对文件的大小有一定的限制,一般的方法是:
定义一个PCHAR类型的变量(实际上是指针);
检测文件大小,申请相同大小的内存;
打开文件,读入所有内容,关闭文件;

大概代码如下:
var p:pchar; l:integer; f:file;
begin
assign(f,'a.exe');
reset(f,1);
l:=filesize(f);
p:=stralloc(l+1);
blockread(f,p,l);
closefile(f);
end;

请一定粘贴代码,里面reset函数后面是数字1,其余表示长度的变量是l,注意。