AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mit readln nur bestimmte Textstelle auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit readln nur bestimmte Textstelle auslesen

Ein Thema von hamptoncourt · begonnen am 6. Jan 2011 · letzter Beitrag vom 6. Jan 2011
Antwort Antwort
Benutzerbild von Deep-Sea
Deep-Sea

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

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 16:11
Wäre es nicht einfacher, die (X)HTML-Datei mit Hilfe eines XML-Parsers zu durchsuchen?
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 16:14
Wäre es nicht einfacher, die (X)HTML-Datei mit Hilfe eines XML-Parsers zu durchsuchen?
Also wenn dann wohl einen spezialisierten HTML-Parser, sonst wirst du Probleme mit <br> usw. kriegen, falls es kein echtes XHTML ist ...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 16:24
Einspruch Euer Ehren, wenn es wirklich nur um 3 oder 4 Zeilen, die ganz klar identifizierbar sind, geht, ist ein Parser nur Overkill.

Ich würde allerdings TStringlist verwenden, da, wenn ich mich recht erinnere, readln nur mit shortstrings umgehen kann.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
hamptoncourt

Registriert seit: 20. Nov 2010
34 Beiträge
 
#4

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 16:30
Ja, vielleicht, wir sollen das allerdings für die Uni auf diese Weise lösen ...

Mit Pos()???? Wie mache ich das??? Das Prinzip kenne ich noch gar nicht ...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 16:33
Delphi-Referenz durchsuchenPos
Ist das denn so schwer?
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
hamptoncourt

Registriert seit: 20. Nov 2010
34 Beiträge
 
#6

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 21:40
Naja, für jemanden, für den das noch neuland ist, ist es schon etwas komplizierter *lol*

Ich denke, ich verstehe, wie das mit dem TStringList und dem Pos() funktionieren soll. Aber irgendwie ist mir nicht klar, wie ich die Anweisung geben kann, dass er in der Zeile mit H1 weiter ließt bis zum >-Zeichen und dann den Text ein ließt ...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 21:46
Du ermittelst mit Pos die Position des Tags (also H1 in Deinem Fall). Nun gehst Du mit Delphi-Referenz durchsuchenPosEx zum nächsten schließenden Tag und ermittelst wieder mit PosEx die Position des nächsten öffnenden. Alles dazwischen kopierst Du nun.
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
hamptoncourt

Registriert seit: 20. Nov 2010
34 Beiträge
 
#8

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 22:32
naja, ich werde hier vermutlich gleich gesteinigt, geteert und gefedert, aber irgendwie will das nicht so recht klappen ...

Habe im Forum ein paar Beispiele zu dem gefunden und versucht, mich daran zu orientieren (dachte, wenn es bei denen klappt, dann vielleicht auch bei mir) ... aber es klappt natürlich nicht ...

Delphi-Quellcode:
Pos1 := pos('"H1">',s);
if Pos1 <>0 Then
begin
Pos2 := PosEx('>', s, Pos1 + 1);
if Pos2 <> 0 Then
begin
Pos3 := PosEx('<',s,Pos2 + 1);
if Pos3<>0 Then
begin
n := Pos3-Pos2;
s2 := copy(s, Pos2, length(n));
end;
Vermutlich bin ich auf nem komplett falschen tripp :-/ Aber der sagt auch Identifire not found "PosEx" ...
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Mit readln nur bestimmte Textstelle auslesen

  Alt 6. Jan 2011, 23:33
Hallo, PosEx befindet sich meines Wissens nach in der Unit strutils, die musst du also oben unter uses hinzufügen.

Außerdem: Bist du sicher, dass das H1 in doppelten Anführungszeichen eingeschlossen ist? Eigentlich heißt es <H1> und nicht <"H1"> .

Und rücke deinen Code ein, sonst wirst du schnell die Übersicht verlieren.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:29 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