delphi 简单正则替换 问题
首先声明本人菜鸟。最近在学习delphi接触到了正则,问题是如果一下的代码要替换的是文件比如说是a.exe而不是字符串该如何表达呢?谢谢了分不多都拿出来了。。usesPe...
首先声明本人菜鸟。最近在学习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 的内容读入内存,再用利正则表达式搜索替换
再写回原文,能实现吗?麻烦大侠给出例子,不胜感激。 展开
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,注意。
定义一个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,注意。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正则表达式只能用于字符串
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思,我也是初学,建议你找本书从头到尾学习学习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是初学者啊 帮不了你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询