besoin d'aide pour un ptit soft de rien du tous

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

essayes ça, chez moi ça fonctionne ( Adaptes le à ton projet )
- 1 page = 1 code source
- fichier créé dans C:\
- J'ai viré FileSeek() qui va à la fin du fichier...

Code : Tout sélectionner

Enumeration 
#WIN_0
#Gadget_Form1_Web2
#EditorSource
EndEnumeration
Enumeration 0 ; #INET_
  #INET_RELOAD = $80000000
EndEnumeration
Enumeration 0 ; #INTERNET_OPEN_TYPE_
  #INTERNET_OPEN_TYPE_PRECONFIG                   = 0
  #INTERNET_OPEN_TYPE_DIRECT                      = 1
  #INTERNET_OPEN_TYPE_PROXY                       = 3
  #INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4
EndEnumeration

ProcedureDLL.s Url2Text(Url.s, AccessType.l = #INTERNET_OPEN_TYPE_DIRECT, ProxyName.s = #NULL$, ProxyBypass.s = #NULL$) ; procédure de Flype
 
  Protected hInet.l, hURL.l, Bytes.l, Result.s, Buffer.s{2048}
 
  hInet = InternetOpen_(#NULL$, AccessType, ProxyName, ProxyBypass, #Null)
  If hInet
    hURL = InternetOpenUrl_(hInet, Url, #NULL$, #Null, #INET_RELOAD, #Null)
    If hURL
      While InternetReadFile_(hURL, @Buffer, 2048, @Bytes) And Bytes
        Result + Left(Buffer, Bytes)
      Wend
      InternetCloseHandle_(hURL)
    EndIf
    InternetCloseHandle_(hInet)
  EndIf
 
  ProcedureReturn Result
 
EndProcedure
  
If OpenWindow(#WIN_0,411,108,480,348,"SDIS-Inter" ,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)=0 Or CreateGadgetList(WindowID(#WIN_0))=0 
End 
EndIf 

WebGadget(#Gadget_Form1_Web2,0,1,480,304,"http://www.sdis54.fr/interventions.php")
EditorGadget(#EditorSource,0,1,480,304)
SendMessage_(GadgetID(#EditorSource), #EM_SETTARGETDEVICE, #Null, 0)

HideGadget(#EditorSource,1)
 Repeat 
 Event = WaitWindowEvent()   
  Select Event  
   
   Case #PB_Event_Gadget 
     Select EventGadget()
     
     Case #Gadget_Form1_Web2
      Url$="http://www.sdis54.fr/interventions.php"
      Source$ = Url2Text(Url$)
      If Source$ 
       SetGadgetText(#EditorSource, Source$)
       HideGadget(#EditorSource,0)
       HideGadget(#Gadget_Form1_Web2,1)
      
          If OpenFile(0, "c:\SourceCode.txt")
              ;FileSeek(0, Lof(0))
              WriteString(0, Source$, #PB_Ascii)
            CloseFile(0)
          EndIf 
      EndIf 
      
     EndSelect 
  EndSelect 
  
  If Event=#PB_Event_CloseWindow : quit = #True
  EndIf 
  
 Until quit=#True
 End 
pour la suite à toi de voir :)
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

8O

Quel est l'intérêt d'aller utiliser l' API pour récupérer le code source de la page, alors que PB a ces fonctions en natif depuis la 4, puisque vous utilisez un WebGadget ? (Et encore... Je suis sûr qu'on peut télécharger la page directement en passant pas la librairie "Network", mais bon... passons)

15 lignes de code juste pour faire ça, (sans compter les constantes), alors qu'une seule ligne suffit :roll: :

Code : Tout sélectionner

Source$ = GetGadgetItemText(#Gadget_Form1_Web2, #PB_Web_HtmlCode) 


Pourquoi chercher à enregistrer le contenu de la variable contenant le code dans un fichier, alors que le fichier n'est pas utilisé ensuite? :lol:

Décidément, vous avez une curieuse façon de programmer, par moment :?

Code : Tout sélectionner

Enumeration
  #WIN_0
  #Gadget_Form1_Web2
  #EditorSource
EndEnumeration
 
If OpenWindow(#WIN_0,411,108,480,348,"SDIS-Inter" ,#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)=0 Or CreateGadgetList(WindowID(#WIN_0))=0
  End
EndIf

WebGadget(#Gadget_Form1_Web2,0,1,480,304,"http://www.sdis54.fr/interventions.php")
EditorGadget(#EditorSource,0,1,480,304)
SendMessage_(GadgetID(#EditorSource), #EM_SETTARGETDEVICE, #Null, 0)

HideGadget(#EditorSource,1)
Repeat
  Event = WaitWindowEvent()   
  Select Event 
    
    Case #PB_Event_Gadget
      Select EventGadget()
        
        Case #Gadget_Form1_Web2
          If GetGadgetAttribute(#Gadget_Form1_Web2, #PB_Web_Busy) = 0
            Source$ = GetGadgetItemText(#Gadget_Form1_Web2, #PB_Web_HtmlCode)
            If Source$
              SetGadgetText(#EditorSource, Source$)
              
              HideGadget(#Gadget_Form1_Web2,1)
              HideGadget(#EditorSource,0)
            EndIf
          EndIf
      EndSelect

    Case #PB_Event_CloseWindow : quit = #True
  EndSelect
  
Until quit=#True
End 
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Décidément, vous avez une curieuse façon de programmer, par moment
Que veux-tu, ton génie ne doit pas être à la portée de tout le monde :roll:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
MetalOS
Messages : 1510
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Message par MetalOS »

Oui c vrai comme ca je peut faire une comparaison du code source de la page dans l'editorgadget. :lol: pourquoi faire compliquer quand on peut faire simple :lol:
Répondre