Hi zusammen
Meinem derzeitigen Testprogramm hab ich einen Edgebrowser verpasst und bin jetzt auch auf die (blöde?) Idee gekommen, ich könnte damit statt mit dem Firefox surfen, also hab ich mir mal die Lesezeichen des Fuchses nach
HTML exportiert - JSON wäre auch möglich.
Zuallererst lade ich von der Datei mit den Bookmarksicherungen den
HTML-Code in einen Stringstream. Dann hab ich mal ein Beispiel zu
POS und PosEx nachgebaut und etwas abgeändert.
Delphi-Quellcode:
function THomeOfficerFeMain.LoadLinkStream:
String;
var StartPos, EndPos, Pos1, Pos2, Offset, L_Lenght :Integer; S, HText:
String;
begin
inherited;
Self.FLinkStream := TStringStream.Create;
FLinkStream.Position := 0;
FLinkStream.LoadFromFile(HomeOfficerFeMain.ProjectPath +'
\HTML\Lesezeichen-HTML\Lesezeichen-bookmarks 2.html');
s := FLinkStream.DataString;
L_Lenght := Length(S);
ShowMessage('
HTMLTextlänge := ' + IntToStr(L_Lenght));
StartPos := Pos('
"', s);
if StartPos <> 0
then // erstes Vorkommen gefunden
begin
// Position des zweiten Semikolons ermitteln: Suchstart gleich nach dem ersten Vorkommen
ShowMessage('
Positionswert von StartPos := ' + IntToStr(StartPos));
EndPos := PosEx('
"', s, StartPos + 1);
if EndPos <> 0
then
ShowMessage('
gefunden an Position:(EndPos) ' + IntToStr(EndPos))
// Hier habe ich die letzten CodeZeilen gelöscht--sie sind irrelevant hier
end;
end;
Der durchsuchte Text enthält in doppelten Hochkommas die
URL einer Webseite und in eckigen Klammern den sichtbaren Text - die
HTML-Seite, so im Feuerfuchs geladen, ist eigentlich voll funktionsfähig. Allerdings mit der Einschränkung, dass sich (ohne Javascript?) die Webseite in der selben Seite öffnet.
Um weiter zu suchen, müssten die Positions- und Suchwerte angepasst werden, bis das Ende des Strings erreicht ist.
Andrerseits sind doch Streams recht gute Werkzeuge und sollten eigentlich mit Bordmitteln die komplette Suche durchführen können?
Gruss
Delbor