Quelltext AUS Webgadget lesen [gelöst]

Für allgemeine Fragen zur Programmierung mit PureBasic.
K.Putt
Beiträge: 122
Registriert: 01.09.2006 00:17

Beitrag von K.Putt »

Hallo,
etwas spät, aber ich nutze diesen Code auch seit einer Weile.



Statt dem

Code: Alles auswählen

Debug PeekS(*Buffer)
weist du den Speicherinhalt z.B. einfach einer Variable zu :

Code: Alles auswählen

htmloutput$ = PeekS(*Buffer)
Alternativ lässt sich auch eine LinkedList() benutzen (zeilenweise Speicherung)

(Der untenstehende Code ist nicht von mir, funktioniert aber, hat jemand mal im Forum gepostet, ich weiss nicht mehr genau wer oder wo, sorry)

Code: Alles auswählen

Text.s= PeekS(*Buffer)
For i = 1 To CountString(Text, #LF$) + 1
     AddElement(LinkedList_htmloutput.s())
     LinkedList_htmloutput.s() = ReplaceString(StringField(Text, i, #LF$), #CR$, "")  
Next 
Wo wir dabei sind, ich habe auch eine kleine Frage dazu, betr. der Frage zu meinem Speicherleck:
http://www.purebasic.fr/german/viewtopic.php?t=12686

Ich speichere den HTML Output in der LinkedList(), die Funktion wird sehr oft aufgerufen, für verschiedene Links, die LinkedList() leere ich vor jedem Aufruf mit ClearList(), trotzdem entseht ein stetiger Speicherverbrauch bei jedem Aufruf der Funktion, hat Jemand eine Lösung?
PB 5.x & Win 7 64Bit
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

und wie kann ich jetzt z.b. informationen wie "Titel" etc. der Website im Webgadget auslesen?
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

meinst du jetzt den Titel der Seite im Browserfenster oben?

Code: Alles auswählen

GetGadgetItemText(#webg,#PB_Web_PageTitle) 
Win11 x64 | PB 6.20
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

das Problem ist dass ich mein Prog mit der 3.94 schreiben. Hab schon versucht die Funktionen aus der 4.2 in eine DLL zu schreiben und aufzurufen. Das scheiterte aber daran dass ich aus einer DLL keine Gadgets abfragen kann...
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

na dann ist das natürlich schwieriger :wink:
Win11 x64 | PB 6.20
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

schwieriger heißt aber nicht unlößbar... Wer hätte denn die zeit sich das mal anzuschauen???
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

saimen hat geschrieben:schwieriger heißt aber nicht unlößbar...
bitte mit weichem 's' (wie Samthandtasche).
saimen hat geschrieben:Wer hätte denn die zeit sich das mal anzuschauen???
was bekomme ich denn dafür? ;-)

folgenden Code für Deine DLL aufbereiten und gut ist:

Code: Alles auswählen

IncludePath #PB_Compiler_Home + "\srod\comate" ; Pfad anpassen!
XIncludeFile "comate.pbi"

Procedure.s GetHtml(url.s)
  
  Protected oIE.COMateObject
  Protected ReturnString.s
  
  oIE = COMate_CreateObject("InternetExplorer.Application")
  
  If oIE
    
    oIE\SetProperty("Visible = #False")
    oIE\Invoke("Navigate('" + url + "')")
    
    Repeat
    Until oIE\GetIntegerProperty("ReadyState") = 4
    
    ReturnString = oIE\GetStringProperty("Document\documentElement\outerHTML")
      
    oIE\Release()
    
  EndIf
  
  ProcedureReturn ReturnString
  
EndProcedure

Debug GetHtml("http://www.google.de")
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

kiffe, das finde ich aber mal ganz toll dass du die dir mühe machst :) Als Belohnung gibts Lob:)

hab das jetzt mal mit folgender url getestet "http://www.purebasic.fr/german/posting. ... ly&t=10039"
und da kam dann "Website konnte nicht angezeigt werden"....
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

saimen hat geschrieben:kiffe, das finde ich aber mal ganz toll dass du die dir mühe machst :) Als Belohnung gibts Lob:)
och, es reicht mir schon, wenn Du meinen Namen richtig schreiben würdest. ;-)
saimen hat geschrieben:hab das jetzt mal mit folgender url getestet "http://www.purebasic.fr/german/posting. ... ly&t=10039"
und da kam dann "Website konnte nicht angezeigt werden"....
Dann machst Du was falsch. Bei mir funktioniert es. Allerdings ist es auch
nicht grade schlau, zu Testzwecken eine Seite aufzurufen, auf der man
angemeldet sein muss, um den mode=reply auszuführen. ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
saimen
Beiträge: 172
Registriert: 26.01.2005 10:44
Wohnort: Passau
Kontaktdaten:

Beitrag von saimen »

also, kiffi :), mit google.de klappt es, aber z.b. mit
http://www.youtube.com/watch?v=V7zep5jcvjc&feature=dir
nicht... ???
Antworten