Entwickler-Ecke
Internet / Netzwerk - [idHTTP] Wie Text auf Webseite markieren?
KarstenN - Di 20.06.06 21:01
Titel: [idHTTP] Wie Text auf Webseite markieren?
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 - Mi 21.06.06 06:40
Nun markieren im engeren Sinne meinst du bestimmt nicht sondern nur die gesamte Seite abspeichern, gell ;-)
KarstenN - 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 - 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 - 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 - 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 [
http://www.swissdelphicenter.ch] finden.
digi_c - Do 22.06.06 15:54
Achso du willst quasi den geparsten Text haben der auch im Browser erscheint, jetzt schnall ich das :think:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!