开发中有时需要在流中查找某个字串,这些字串有可能是ascii表后半部分或混杂.但是网上提供的例程效果不佳而且代码冗长.
后来自己抽个时间写了一个,代码极少,效率很高.仅供各位参考:
function scanstream(t:tstream;s:string):integer;
var i,j:integer;
p:pchar;
begin
getmem(p,t.size);//分配内存
t.readbuffer(p^,t.size );//读
for i:=0 to t.size -1 do begin
for j:=1 to length(s) do
if p[i+j]<>s[j] then break;//有一个不同即退出
if j>length(s) then begin //依据
result:=i+1;
break; //完成
end;
end;
freemem(p);
end;
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器