Also mit diesem Thread habt Ihr mir schon ungemein geholfen.
Aber wo schon so ein Millisekungen-Run entstanden ist habe ich da noch eine Aufgabe
Vorab, ich werte eine relativ große Webseite bzw. deren
Html-code aus.
Dafür ist es nötig bestimmte Stellen zu finden, genauer der String der zwischen StringA und StringB steckt.
Da ich diese zwei, ich nenne sie mal IdentifierungsStrings aus einer ini lese habe ich sie dort mit einem "|" getrennt...
Daher musste ich auch einen String um alle doppelten Leerzeichen erleichtern sowie alle #9 #10 #13 entfernen damit die Identifzierung zuverlässiger ist.
So... nun hab ich mir also nen Funktion gebastelt die sehr häufig aufgerufen wird und bestimmt aufgrund der vielen Pos, Copy und Delete Befehle nicht gerade schnell ist.
als Variable "s" übergebe ich den Quelltext zB 'Mein Benutzername hier im Forum ist Pichel, mal so als Beispieltext.'
und als var "ids" den Identifizierungsstring zB 'Mein Benutzername hier im Forum ist
|,'
Die Funktion liefert nun 'Pichel' als Result zurück und der
Html-Quelltext ist gekürzt auf ' mal so als Beispieltext.'
Ich hoffe das war soweit zu verstehen... und hier nun der Code auf das ich noch was lernen kann
Delphi-Quellcode:
function GetDataSet(var s: String; ids: String): String;
var id1, id2: String;
begin
Result := '';
if Pos('|',ids) > 0 then begin // IDs splitten
id1 := copy(ids, 1, pred(Pos('|',ids)));
id2 := copy(ids, succ(Pos('|', ids)), length(ids));
end else begin
id1 := '';
id2 := ids;
end;
if (id1 = '') or (Pos(id1, s) > 0) then begin
if id1 <> '' then delete(s,1,pred(Pos(id1, s)+length(id1)));
if (Pos(id2, s) > 0) then begin
Result := trim(copy(s, 1, pred(Pos(id2, s))));
delete(s,1,pred(Pos(id2, s)+length(id2)));
end;
end;
end;
Grüße aus Kassel.
Konfuzius sprach: Etwas lernen und sich immer wieder darin üben - schafft das nicht auch Befriedigung?