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 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 19:49
Achso. Ich dachte, das hast du irgendwo als Anleitung gefunden.
Gut, dann bringt dir der RSS-Feed natürlich nichts.
  Mit Zitat antworten Zitat
Chris1896

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

AW: Überschrift aus Textdatei finden.

  Alt 11. Jan 2011, 19:54
Aber irgendwie komme ich nicht weiter... mit dem Quelltext den ich gepostet habe kann ich ja immoment die Pos eines beliebigen zeichens herausfinden aber wie mache ich das ich “H1“> finde und das darauf folgende >finde und den text bis zum < ausgeben kann?
komme da nicht weiter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 07:09
Das ist doch nicht sooo schwer:
- mit Pos(Ex) den ersten Teilstring suchen und Position in einer Variablen merken
- wieder mit PosEx ab dieser Position (+ Länge des Teilstrings) den "Ende"-String suchen und auch merken
- bei Fund alles zwischen diesen beiden Positionen kopieren
- erste Variable auf den Wert der zweiten (+ Länge des "Ende"-Strings) setzen
- alles nochmal von vorn, bis keine Funde mehr existieren
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
Chris1896

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

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:06
So, habe jetzt mal ein bisschen probiert, aber irgendwie funktioniert das noch nicht.

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 := Pos('"H1">', s);
if Pos1 <> 0 then // überschrift gefunden
begin
  Pos2 := PosEx('>', s, Pos1 + 1);
  Pos3 := PosEx('<', s, Pos2 + 1);
  if Pos2 <> 0 then
    SubStr := Copy(s, Pos2, Pos3);
    ShowMessage(SubStr + '');
  end;
end;
Eigentlich habe ich jetzt so gedacht das ich mit Pos1 "H1"> als erste Position gefunden habe mit Pos2 das nächste > zeichen und mit Pos3 das nächste < zeichen und das kopiere und als ShowMessage das der Text kommen müsste: Bahn bestellt 137 Doppelstockwagen
Wo ist mein Fehler dort?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: Überschrift aus Textdatei finden.

  Alt 12. Jan 2011, 13:09
Zitat:
Pos2 := PosEx('>', s, Pos1 + 1);
Wieso Pos1 + 1? Rate einmal, welches Zeichen Du damit erwischst.
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
Benutzerbild von Bummi
Bummi

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

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
Chris1896

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

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
Klaus01
Online

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

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
Benutzerbild von Deep-Sea
Deep-Sea

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

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
Benutzerbild von Deep-Sea
Deep-Sea

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

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
Antwort Antwort
Seite 1 von 2  1 2      


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 06:11 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