Equivalent d'une instruction utilisée en delphi

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
nememoris
Messages : 10
Inscription : mer. 18/nov./2020 11:14

Equivalent d'une instruction utilisée en delphi

Message par nememoris »

Bonjour

Dans delphi j utilise cette instruction

Code : Tout sélectionner

Str := WebBrowser1.OleObject.Document.GetElementByID('email').value;
Elle récupère dans une variable string (str) le contenu d un champ id="email" dans une page web affichée dans un webbrowser.

Je cherche donc à faire l équivalent avec un webgadget.

Merci pour votre aide ou un tuto ou ... enfin tout ce qui pourrait de me permettre de me dépatouiller (accès au DOM et autres ) de ça car cela fait plusieurs jours que je cherche comment faire sur les forums sans ne rien trouver ...
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Equivalent d'une instruction utilisée en delphi

Message par Marc56 »

Bonjour,

Il n'y a pas de fonction directe, mais il suffit d'utiliser (ou même imbriquer) deux fonctions successives:

GetGadgetItemText() récupère le code source de la page.
FindString() (ou les expressions régulières) pour extraire la chaine.

:idea: On peut aussi se passer d'afficher la page et de ne charger que la source (y compris en mémoire seule) avec diverses fonctions:
HTTPRequest
HTTPRequestMemory
ReceiveHTTPFile
ReceiveHTTPMemory
(Syntaxe et exemples est dans l'aide, chapitre HTTP)

:wink:
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Equivalent d'une instruction utilisée en delphi

Message par Mesa »

Salut, fais une recherche google avec "Purebasic IWebBrowser2" et tu auras plein d'exemples de code.

Tu peux regarder ici aussi:
https://purebasic.developpez.com/source ... Pg_windows
Il faut la version payante de PB, car utilisation des api.

M.
nememoris
Messages : 10
Inscription : mer. 18/nov./2020 11:14

Re: Equivalent d'une instruction utilisée en delphi

Message par nememoris »

Merci pour vos réponses

J ai effectivement trouvé beaucoup de choses qui ont trait au code html de la page, comment le mettre dans un stream, le parser mais rien pour manipuler les objets de la page en "temps réel" sinon les infos liées à l aide du webgadget...
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Equivalent d'une instruction utilisée en delphi

Message par Marc56 »

Les objets de la page ne peuvent être manipulés. PB n'est pas un langage objet (et il n'est pas dans son objectif de le devenir). Il existe d'autres langages et aussi des outils spécialisés pour faire du pilotage HTML (ex: Chromium, AutoIt etc)

En PB on peut faire simplement ce genre de chose en dialogue direct avec la source des pages.
Exemple rapide (qui pourrait être simplifié) avec les nouvelles fonctions dédiés au webservices (PB v5.70)

Code : Tout sélectionner

URL$ = "http://127.0.0.1/test_id.html"

InitNetwork()

HttpRequest = HTTPRequestMemory(#PB_HTTP_Get, URL$)
If Not HttpRequest
    Debug "La requête a échoué" : End
EndIf

Source$ = HTTPInfo(HTTPRequest, #PB_HTTP_Response)
FinishHTTP(HTTPRequest)

STX = FindString(Source$, ~"id=\"email\">")
ETX = FindString(Source$, ">")

Txt$ = Mid(Source$, STX + 11, ETX+9)
Debug Txt$

End

; <!-- Fichier de test -->
; <html>
; <body>
; <h1 id="email">hello@world.com</h1>
; </body>
; </html>
:wink:
nememoris
Messages : 10
Inscription : mer. 18/nov./2020 11:14

Re: Equivalent d'une instruction utilisée en delphi

Message par nememoris »

Ok, merci.
Bon du coup ça refroidit un peu mes ardeurs...
C est dommage les exe purebasic sont tellement plus légers que ceux de delphi que j avais l intention de converti mon code pour m y initier.
Je vais passer à un autre projet car je ne manque pas d idées
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Equivalent d'une instruction utilisée en delphi

Message par Mesa »

Pb a des lacunes à ce niveau mais je pense que c'est possible en utilisant la "bibliothèque" comateplus que tu trouvera ici
https://www.rsbasic.de/backups/
ou là
http://backups.rsbasic.de/COMatePLUS.zip

Elle est livrée avec des exemple dont Demo_HTMLFormSubmitButtons.pb qui peut t'interesser, il y a d'autres exemples sur les forums.
On peut aussi executer des scripts vbs avec comateplus, voir les exemples.

M.
nememoris
Messages : 10
Inscription : mer. 18/nov./2020 11:14

Re: Equivalent d'une instruction utilisée en delphi

Message par nememoris »

Je te remercie pour toute ces précisions.
Je vais aller voir cela
Répondre