我正在尝试使用 Indy http 服务器在网页中查找用于代理过滤器的关键字。我已经设置了一个代理和 http 服务器,它适用于网络浏览器,但是在网页中查找关键字时我很挣扎。
我一直在尝试将内存流转换为字符串并在其中搜索关键字,但也许这是错误的做法。我对delphi的经验有限,所以我有点卡住了。
如果有人可以给我任何指示,那就太好了。
谢谢。
编辑:好的,我在这里添加了一个函数,其中'Stream'是来自http服务器的内存流,'what'是我正在搜索的关键字,但它似乎不起作用......
function FindInMemStream(Stream: TMemoryStream; What: String):Integer;
var
  bufBuffer, bufBuffer2: array[0..254] of Char;
  i: Integer;
begin
filter.Form2.ListBox1.Items.Add('finding');
  What := 'train';
  Result := 0;
  i := 0;
  FillChar(bufBuffer, 255, #0);          
  FillChar(bufBuffer2, 255, #0);       
  StrPCopy(@bufBuffer2, What);           
  Stream.Position:=0;
  while Stream.Position <> Stream.Size do   
  begin
    Stream.Read(bufBuffer[0],Length(What));   
    if CompareMem(@bufBuffer,@bufBuffer2,Length(What)) then       
    begin
    filter.Form2.ListBox1.Items.Add(IntToStr(Stream.Position-Length(What)));
      Result := Stream.Position-Length(What);  // not 0 : it's found keyphrase
      Exit;
    end;
    i := i + 1;
  //  filter.Form2.ListBox1.Items.Add(IntToStr(i));
    Stream.Seek(i,0)     
  end;
end;