| Autor |
Beitrag |
Sithlord
      
Beiträge: 172
|
Verfasst: Sa 07.06.08 21:54
Hallo, ich würde gerne einen Webseiten ausschnitt anzeigen in Delphi - aber nur die Mitte, Quasi Header, Linke und Rechte Spalte ausgeblendet - die untere auch, nur in der Mitte die Tabelle soll angezeigt werden !
Wie kann ich das realisieren ?
Ich möchte ein Programm schreiben, welches auf einer Homepage die eigenen, ungelesenen Beiträge anzeigt, dafür müsste ich nur eine Tabelle und auch nur die anzeigen.
Sonst ist es ja Sinnlos für die Forenuser, das sie sonst gleich den Browser öffnen könnten !
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 07.06.08 21:56
Das kommt voll und ganz auf die Website an. Je nach dem ob das Layout mit Frames, Divs oder Tables gemacht ist. (Mit Frames sollte das leicht machbar sein, divs sind vielleicht auch noch gut umsetzbar, aber bei tables hört der Spaß auf  )
mfg
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: Sa 07.06.08 22:00
Ich habe den Admin gefragt - es sind leider keine Frames, sonst hätte ich es auch hinbekommen, es sind leider leider leider leider Tabellen ;-(
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 07.06.08 22:03
Du hättest nicht fragen brauchen, der Quellcode hätte es dir verraten. Wenn es aber nur für eine spezielle Seite ist, könntest du in diesen mal hineinschauen und gucken wo was beginnt, in deinem Programm musst du dann halt alles was nicht sichtbar sein soll auskommentieren lassen oder löschen.
mfg
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: Sa 07.06.08 22:09
Bloß wie soll ich es auskommentieren ?
Ich muss in Delphi ja die Seite öffnen - kann ich irgendwie die Tabelle in eine Browserkomponente laden - nur mit dem Inhalt dieser Tabelle ?
Mfg Sithlord
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 08.06.08 01:14
1. Seite herunterladen ( URLDOWNLOADTOFILE , IDHTTP)
2. Herausfinden wo die Tabelle beginnt und endet und in einen String kopieren ( COPY, POS)
3. String im WebBrowser anzeigen
Dann werden halt keine Styles übernommen. Musst also zuvor noch den Stylesheet-Block bzw. -Link extrahieren.
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 08:54
Cool - danke !
Nein, Das Style ist net so wichtig, muss ja nur als Tabelle angezeigt werden - vielen dank, ich melde mich, wenn es geht !
ähhm, wie kann ich nur die Tabelle kopieren - sie wächst und schrumpft dynamisch, ich müsste also vom allgemeinem Table Anfang bis zum allgemeinem Table Ende kopiern lassen - wie kann ich das ?
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: So 08.06.08 10:25
hi,
ich würde ja eher als ab <body> bis zur table löschen und ab dem ende der table wieder alles bis zu </body> löschen. So läufst du nicht Gefahr doch irgendetwas wichtiges auszulassen. (auch javaskript code segmente würde ich drinne lassen, die dürfen afaik überall stehen)
mfg
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 10:39
Jetzt bräuchte ich nur noch ein Codeansatz - ich weiß ja, wie man inhalte von txt Dateien löscht - aber nicht wie ich nur vom Anfang bis zur Table und vom Tableende bis zur ende der Datei lösche
Mfg Sithlord
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: So 08.06.08 10:48
naja entweder hat die tabelle eine spezielle eigenschaft <table class="content"> die einmalig ist, oder du schaust einfach wie viele tabellen vorher kommen. (so lange diese zahl nicht variable ist, sollte das auch gehen)
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| for i := 1 to length(str) do if (copy(str, i, length('<table>')) = '<table>') then begin end; |
bzw suchst du erstmal nach body (das geht auch mit pos) und fängst da an zu suchen
mfg
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 20:23
Die Tabelle hat eine spezielle Kennzeichnung - nennt sich "Forenuebersicht" ohne "" !
Wie muss ich das Script nun verändern - sorry das ich so oft nachfrage, aber in diese Richtung habe ich keine Ahnung 
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 08.06.08 20:45
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 20:54
Oh - ja - ich bin wohl heute nicht sehr Fit im Kopf - ist ja auch Sonntag ^^
Also, dies ist der Code :
if (copy(str, i, length('<table name="Forenuebersicht">')) = '<table>') then
-Dann ist copy der Befehl zum kopieren
-str mein String in den das alles geladen wird
-was ich nicht verstehe wozu "i" gebraucht wird
-die länge ist ja length - wird die auch gebraucht ? Meine Tabelle ist dynamisch wachsend
Sorry - aber ich habe leider keinen Plan von so einem einfachen Stück Code - naja, bin ja auch Müde 
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 08.06.08 21:13
Delphi-Quelltext 1: 2: 3:
| str := IdHttp.Get('http://deinesiete.de'); str := Copy(str, pos('<table name="Forenuebersicht">', str), pos('</table>', str) - pos('<table name="Forenuebersicht">', str) + 8); |
Copy erwartet 3 Parameter:
1. Einen String in dem, der zu kopierende Text enthalten ist
2. Zeichen-Index bei dem begonnen wird. Gibst du hier 1 an, wir ab dem ersten Zeichen kopiert. Wir suchen an dieser Stelle mit pos nach dem ersten Vorkommen der Tabelle
3. Wie viele Zeichen kopiert werden sollen.
Wenn du zu müde bist solltest du morgen weitermachen...
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 21:28
Nein, noch gehts - muss ja Fussball schauen ^^
Ok, Danke!
Ich werde es probieren, jetzt habe ichs verstanden 
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 21:53
Mhh - ich habe nun folgendes gemacht -es geht, allerdings wird meine Tabelle nicht angezeigt, nur manchmal ein bisschen unlesbares aus der HTML Sprache !
Ich finde nicht den genauen Tabellenanfang - ende !
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var str:string; begin
str:=IdHTTP.get(edit1.text); str := Copy(str, pos('<table class="forenUebersicht" cellpadding="0" cellspacing="0" border="0" width="100%">', str), pos('</table>', str) - pos('<table class="forenUebersicht" cellpadding="0" cellspacing="0" border="0" width="100%">', str) + 40); SaveStringToFile ('C:\table.htm', str); webbrowser1.Navigate('C:\table.htm'); end; |
Und geladen wird die Datei vom Webbrowser auch nur !, wenn ich C:\ davor eingebe - sonst nicht !
Gespeichert wird der String auch ordnungsgemäß !
Nur zeigt er den Tabellenanfang /das Tabellenende nicht an ! -.-
Ich frage mal den Admin vom Forum ....
Moderiert von Narses: Delphi-Tags hinzugefügt
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 08.06.08 22:13
Zuletzt bearbeitet von Andreas L. am So 08.06.08 22:16, insgesamt 1-mal bearbeitet
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 22:16
Doch Doch, starten kann ich das Programm - eben halt zeigt er nicht alles an wie ich möchte - besser gesagt gar nichts !
www.pcfreunde.de/for...39&btnApply.y=11
Der Quelltext ist äußers umfangreich und schwer zu verstehen !
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: So 08.06.08 22:31
Das Problem ost, dass es mehrere </table> gibt. Der findet natürlich den erst besten und nicht den, der zu deiner Suche gehört  Achja, die Zahl die ich als letzten Parameter bei copy übergeben habe, muss auch weiterhin 8 sein. Wie kommst du auf 40?
|
|
Sithlord 
      
Beiträge: 172
|
Verfasst: So 08.06.08 22:41
Oh , sorry - ich hab aus der Not herumprobiert ^^.
Naja - wie dem auch sei - lässt sich das irgendwie so einstellen, das er erst den anfang der table sucht, dann weiter nach der </table> sucht , ohne das er jedesmal von vorne anfängt ?
Mfg Sithlord
_________________ Heut ist nicht alle Tage, ich hab wieder ein Problem, keine Frage...
|
|
|