Oh nein, das habe ich befürchet.
Ähm.. also der Code ist wirklich ausgesprochen hässlich und ich hoffe mir ist niemand böse, wenn ich ihn auf das Wesentliche beschränke in der Darstellung hier. :P
Delphi-Quellcode:
procedure Scan(Sender: TObject; sSearchStr);
var
i, j: Integer;
sSource: TStringList;
iPos: Cardinal;
TempStr: AnsiString;
DF: Textfile;
begin
if Sender
is TEmbeddedWB
then
begin
sSource := TStringList.Create;
try
with Sender
as TEmbeddedWB
do
SaveToStrings(sSource);
iPos := 0;
// jetzt kämen zwei for-schleifen :P
//for i := ...
//for j := ...
begin
iPos := NextPos(sSearchStr, sSourceText, iPos + 1);
TempStr := Copy(sSource.Text, iPos, 250);
// kopiert die relevante Information (bis zum nächsten '<')
// übrigens, da Length Integer und NextPos Cardinal zurückliefert, bekomme ich..
// ..bei jedem Aufruf dieser Art "Vorzeichenbehaftete und -lose Typen werden kombiniert.."
// aber dagegen kann ich wohl nichts machen oder? ^^;
TempStr := Copy(TempStr, 1, Length(TempStr) - (Length(TempStr) - NextPos('
<', TempStr, 1) + 1));
Lines[i] := Lines[i] + TempStr;
// es folgen weitere 2-3 (je nach if Resultat) solcher Zeilen :P
// ...
end;
// das Speichern des Inhaltes, ab und zu mal (if Verzweigung)
begin
for i := 2
to 5
do
begin
Lines[1] := Lines[1] + Lines[i];
Lines[i] := '
';
end;
AssignFile(
DF, SAVE_FILE);
Append(
DF);
Write(
DF, Lines[1]);
Flush(
DF);
CloseFile(
DF);
Lines[1] := '
';
end;
with Sender
as TEmbeddedWB
do
// URL wird abhängig von den gefundenen Ergebnissen verändert um sich durchzunavigieren :P
Navigate(
URL);
finally
sSource.Free;
end;
end;
end;
Diese Prozedur wird von TEmbeddedWB.OnDownloadComplete aufgerufen und nachdem ich es mal ein paar Stunden laufen ließ, wurde sie bestimmt an die 40000 Mal aufgerufen.
Mmh.. also ich könnte verstehen wenn euch meine Art meinen Code zu präsentieren gelinde gesagt zu blöd ist, aber ich würde mich trotzdem immer über Hilfe freuen. ;)
[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]