![]() |
AW: Überschrift aus Textdatei finden.
Der Code
Delphi-Quellcode:
findet das >, was bei "H1"> steht, denn Pos1 verweist auf den Anfang des Teilstrings und somit suchst du schon ab dem Zeichen H weiter und nicht erst nach dem Zeichen >.
Pos2 := PosEx('>', s, Pos1 + 1);
PS: Copy erwartet als 3. Parameter die Anzahl der zu kopierenden Zeichen und keinen Index. |
AW: Überschrift aus Textdatei finden.
Zitat:
Zitat:
|
AW: Überschrift aus Textdatei finden.
Um bei Deinem Vorgehen zu bleiben...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Pos1, Pos2,Pos3,Pos4,Pos5: integer; s, SubStr: string; begin s := '<div class="H1"><a href="/s/RubD16E1F55D211content.html">Bahn bestellt 137 Doppelstockwagen</a></div>'; Pos1 := Pos('"H1">', s); if Pos1 <> 0 then // überschrift gefunden begin Pos2 := PosEx('>', s, Pos1 ); Pos3 := PosEx('<', s, Pos2 ); Pos4 := PosEx('>', s, Pos3 ); Pos5 := PosEx('<', s, Pos4 ); if Pos5 <> 0 then SubStr := Copy(s, Pos4 + 1, Pos5 - POS4 - 1); ShowMessage(SubStr + ''); end; end; |
AW: Überschrift aus Textdatei finden.
sodele
Delphi-Quellcode:
Grüße
procedure TForm1.Button1Click(Sender: TObject);
var Pos1, Pos2,Pos3: byte; s, SubStr: string; begin s := '<div class="H1"><a href="/s/RubD16E1F55D21144C4AE3F9DDF52B6E1D9/Doc~E9E3E544B0814490A9D64596C57269FAB~ATpl~Ecommon~Scontent.html">Bahn bestellt 137 Doppelstockwagen</a></div>'; Pos1 := PosEx('"H1">', s)+5; // weil der Suchstring 5 Zeichen hat if Pos1 <> 0 then // überschrift gefunden begin Pos2 := PosEx('>', s, Pos1 + 1)+1; // weil der Suchstring 1 Zeichen hat Pos3 := PosEx('<', s, Pos2); if Pos2 <> 0 then SubStr := Copy(s, Pos2, Pos3-Pos2); // Aufparameter von copy mal anschauen ShowMessage(SubStr + ''); end; end; Klaus |
AW: Überschrift aus Textdatei finden.
Aber dann kann ich es doch auch so zusammenfassen oder nicht?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Pos1, Pos2,Pos3: integer; s,s2: string; begin s := '<div class="H1"><a href="/s/RubD16E1F55D21144C4AE3F9DDF52B6E1D9/Doc~E9E3E544B0814490A9D64596C57269FAB~ATpl~Ecommon~Scontent.html">Bahn bestellt 137 Doppelstockwagen</a></div>'; Pos1 := Pos('"H1">', s); if Pos1 <> 0 then // überschrift gefunden begin Pos2 := PosEx('>', s, Pos1+5); Pos3 := PosEx('<', s, Pos2); if Pos2 <> 0 then s2 := Copy(s, Pos2+1, Pos3-Pos2-1); ShowMessage(s2 + ''); end; end; |
AW: Überschrift aus Textdatei finden.
@Klaus01:
Dein Code hat Fehler. Du addierst zu den Positionsvariablen erst einen Offset und prüfst dann, ob sie Null sind. Dies tritt aber nie ein, auch wenn der Teilstring nicht gefunden wurde, da z.B. 0 + 5 immer <> 0 ist :wink: @Chris1896: Ja, sieht ganz gut aus. Geht es denn nun? [edit] Sicher, dass du ShowMessage ausführen willst, auch wenn Pos2 nicht gefunden wurde? Oder anders: der Code ist falsch/schlecht eingerückt. |
AW: Überschrift aus Textdatei finden.
@ Deep-Sea ja, funktioniert. werde jetzt mal weiter ausprobieren und wenn ich wieder nicht weiter komme Frage ich hier einfach wieder nach.
Danke an alle für die Hilfe |
AW: Überschrift aus Textdatei finden.
Ach eine Frage fällt mir da noch ein, kann ich diesen Quelltext jetzt so umbauen das ich eine Schleife draus machen kann? Ist ja sonst ein bisschen lang das ganze und wohl auch nicht so zielführend.
|
AW: Überschrift aus Textdatei finden.
Klar kannst Du.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz