读书人

关于delphi ISAPI的替换网页内容。该怎

发布时间: 2012-02-21 16:26:23 作者: rapoo

关于delphi ISAPI的替换网页内容。
代码片段:
var
pVPHTTP_FILTER_RAW_DATA: PHTTP_FILTER_RAW_DATA;
Ipos:Integer;
Replace:string;
begin
PvPHTTP_FILTER_RAW_DATA := PHTTP_FILTER_RAW_DATA(pvNotification);
Ipos:=pos('123',Pchar(PvPHTTP_FILTER_RAW_DATA^.pvInData));
if(Ipos>0)
begin
Replace := StringReplace(Pchar(PvPHTTP_FILTER_RAW_DATA^.pvInData),
'123','abc',[rfReplaceAll]);
这样替换可以得到正确的显示结果,所有123的都替换成了abc,要替换的字符串和被替换的字符串长度都是3,如果改成
Replace := StringReplace(Pchar(PvPHTTP_FILTER_RAW_DATA^.pvInData),
'123','abcdef',[rfReplaceAll]);
'123'的长度是3,'abcdef'的长度是6,那么替换就有提示是指针异常,很明显是长度溢出了。
试图给PvPHTTP_FILTER_RAW_DATA^.pvInData分配内存ReallocMem(PvPHTTP_FILTER_RAW_DATA^.pvInData, Length(1024*1024*2));这样的空间已经够大了,还是提示指针异常,应该怎么样替换不一样长度的字符串呢?

end;
end;

[解决办法]
算了没有解决,自己要回发帖的分没有意见吧!

读书人网 >.NET

热点推荐