AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Überschrift aus Textdatei finden.

Ein Thema von Chris1896 · begonnen am 11. Jan 2011 · letzter Beitrag vom 12. Jan 2011
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#21

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:11
Der Code
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.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#22

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:23
Der Code
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.

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

Geändert von Chris1896 (12. Jan 2011 um 13:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#23

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:27
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.756 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:28
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
Klaus
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#25

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:34
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;
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#26

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:35
@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


@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.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.

Geändert von Deep-Sea (12. Jan 2011 um 13:39 Uhr)
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#27

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:40
@ 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
  Mit Zitat antworten Zitat
Chris1896

Registriert seit: 17. Nov 2010
17 Beiträge
 
#28

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:45
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 14:01
Klar kannst Du.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz