Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Überschrift aus Textdatei finden. (https://www.delphipraxis.net/157410-ueberschrift-aus-textdatei-finden.html)

Deep-Sea 12. Jan 2011 13:11

AW: Überschrift aus Textdatei finden.
 
Der Code
Delphi-Quellcode:
Pos2 := PosEx('>', s, Pos1 + 1);
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 >.

PS: Copy erwartet als 3. Parameter die Anzahl der zu kopierenden Zeichen und keinen Index.

Chris1896 12. Jan 2011 13:23

AW: Überschrift aus Textdatei finden.
 
Zitat:

Zitat von Deep-Sea (Beitrag 1074151)
Der Code
Delphi-Quellcode:
Pos2 := PosEx('>', s, Pos1 + 1);
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 >.

Okay das ist mir einleuchtend also +5 weil ich von zeichen habe und er danach weiter such soll.

Zitat:

Zitat von Deep-Sea (Beitrag 1074151)
PS: Copy erwartet als 3. Parameter die Anzahl der zu kopierenden Zeichen und keinen Index.

Woher weiß ich den wieviele zeichen meine überschrift hat können doch unterschiedlich sein. verstehe ich nicht. Aber erstmal danke euch beiden für die hilfe, muss sagen das es ein sehr gutes forum hier ist hier bekommt man schnell antwort

Bummi 12. Jan 2011 13:27

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;

Klaus01 12. Jan 2011 13:28

AW: Überschrift aus Textdatei finden.
 
sodele

Delphi-Quellcode:
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;
Grüße
Klaus

Chris1896 12. Jan 2011 13:34

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;

Deep-Sea 12. Jan 2011 13:35

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.

Chris1896 12. Jan 2011 13:40

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

Chris1896 12. Jan 2011 13:45

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.

DeddyH 12. Jan 2011 14:01

AW: Überschrift aus Textdatei finden.
 
Klar kannst Du.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr.
Seite 3 von 3     123   

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