Indy http サーバーを使用して、プロキシ フィルターの Web ページ内のキーワードを検索しようとしています。Web ブラウザーで動作するプロキシと http サーバーをセットアップしましたが、Web ページ内でキーワードを見つけるのに苦労しています。
メモリ ストリームを文字列に変換し、その中でキーワードを検索しようとしましたが、これは間違った方法である可能性があります。私はデルファイの経験が限られているので、少し行き詰まっています。
誰かが私に何か指針を与えることができれば、それは素晴らしいことです.
ありがとう。
編集:わかりましたここに関数を追加しました。ここで、「ストリーム」は 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;