| Autor |
Beitrag |
KarstenN
Hält's aus hier
Beiträge: 3
|
Verfasst: Di 20.06.06 21:01
Hi, ich kenne mich mit den Indy-Komponenten zwar kaum aus, aber bisher hat es gereicht (Schüler, 12. Klasse). Nun habe ich die Frage, ob es mit idHTTP möglich ist, auf einer Webseite den gesamten Text zu markieren (quasi Strg+A), um ihn dann zu speichern (Textdatei, Stringlist, ...).
Hintergrund ist der, dass ich auf einer Webseite verschiedene Daten habe (vorzustellen wie täglich neue DAX-Werte) und diese bisher mit idHTTP.get aus dem Quellcode geholt habe. Nun wollte ich mein Programm aber verbessern, indem ich den Text eben markiere. Weil ich hoffe, dass dies schneller geht und kürzer ist (Irrtum vorbehalten).
Vielen Dank schonmal und liebe Grüße!
Karsten
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Mi 21.06.06 06:40
Nun markieren im engeren Sinne meinst du bestimmt nicht sondern nur die gesamte Seite abspeichern, gell 
|
|
KarstenN 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 21.06.06 16:09
Ich meine schon genau das, was ich sage
Speichern kann ich ja (idHTTP.get und das dann irgendwo speichern Variable / Datei). Aber ich ja den Text markieren!
Wenn ich den Text speichere (und ihn mir vorher über idHTTP.get geholt habe), dann enthält er ja den gesmten Quellcode der z.B. HTML-Datei.
Ich möchte aber nur den sichtbaren Text haben, also muss ich den markieren und abspeichern.
Klar soweit?
Beispiel: Dieser Text ist im Quellcode im [b]-Tag, ich würde aber nur "Dieser Text ist im Quellcode im [b]-Tag" haben wollen, weil man auch nur das sieht.
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Mi 21.06.06 18:15
ich hab mir da mla ne gaaanz einfache Funktion geschrieben:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function stripHTMLtags (org:string):string; begin result := TRIM(org); while (pos ('<',org) > 0) AND (pos ('>',org) > 0) do begin if (pos ('>',org) <= 0) OR (pos ('<',org) <= 0) then break; if pos ('>',org) < pos ('<',org) then org[pos ('>',org)] := ' '; delete (org,pos ('<',org),pos ('>',org)-pos ('<',org)+1); end; org := stringreplace (org,#13,'',[rfreplaceall]); org := stringreplace (org,#10,'',[rfreplaceall]); result := ansilowercase(org); end; | Evtl. hilft die dir weiter...
|
|
KarstenN 
Hält's aus hier
Beiträge: 3
|
Verfasst: Mi 21.06.06 20:45
Danke erstmal für Deine Mühe!
Ja, diese Funktion wird funktionieren, wenn ich sie etwas angepasst habe. Ohne jetzt großkotzig zu erscheinen, solch eine Funktion hatte ich mir auch schon als "Ersatzfall" überlegt, aber ich hatte zuerst fragen wollen, ob es nicht doch die elegante Methode gibt, dass man mit einem Befehl nur den sichtbaren Text bekommt. Die Funktion selbst zu schreiben, ist ja Arbeit
Also falls jemand doch so einen Befehl kennt, möge er sich bitte melden!
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Mi 21.06.06 21:19
du könntest den HTML Quelltext in eine TWebbrowser Kompo laden, und da dann den Text ausziehen.
Quellcodebeispiele müsste man hier im Forum und bei den Schweizern finden.
|
|
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Do 22.06.06 15:54
Achso du willst quasi den geparsten Text haben der auch im Browser erscheint, jetzt schnall ich das 
|
|
|