我想截取一段网页代码,用了AnsiPos,但是不知道是是否可以截取同个文件中的多段代码. ( 积分: 100 )

  • 主题发起人 主题发起人 fd151711
  • 开始时间 开始时间
F

fd151711

Unregistered / Unconfirmed
GUEST, unregistred user!
function GetStr(StrSource,StrBegin,StrEnd:string):string;
var
in_star,in_end:integer;
begin
in_star:=AnsiPos(strbegin,strsource)+length(strbegin);
in_end:=AnsiPos(strend,strsource);
result:=copy(strsource,in_star,in_end-in_star);
end;
如果想让in_stra 截取的字符小于in_end,改怎么办?
比如说一个文件是这样的hrraaccaawwccaa
我要截取a acca a
in_stra就要在in_end 前面
怎么做到?
 
function GetStr(StrSource,StrBegin,StrEnd:string):string;
var
in_star,in_end:integer;
begin
in_star:=AnsiPos(strbegin,strsource)+length(strbegin);
in_end:=AnsiPos(strend,strsource);
result:=copy(strsource,in_star,in_end-in_star);
end;
如果想让in_stra 截取的字符小于in_end,改怎么办?
比如说一个文件是这样的hrraaccaawwccaa
我要截取a acca a
in_stra就要在in_end 前面
怎么做到?
 
use strutils;
然后使用PosEx
 
给出详细代码好么?谢谢了
 
in_stra位置怎么小于in_end?
 
没看懂。。。。。。。。什么叫in_str在in_end前面?
 
比如说有很多相同的字段iiiiiiiiiiiiiiiiiiiiiiiiiiiiiAAAAaAaAaAaAaAaaaa
我要取的开头为in_str,结尾用in_end,开头字节要小于结尾的,不能取到in_end>in_str
 
试试这个?

function GetStr(StrSource,StrBegin,StrEnd:string):string;
var
i:integer;
str:string;
begin
str:=strsource;
i:=pos(strbegin,str);
if i<>0 then
str:=copy(str,i+length(strbegin),length(str));
i:=pos(strend,str);
if i<>0 then
result:=copy(str,0,i)
else
result:='';
end;
 
问题解决`,怎么没有想到`
呵呵
 
后退
顶部