FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Objet WebBrowser. Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Objet WebBrowser. Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Objet WebBrowser. Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Objet WebBrowser. Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Objet WebBrowser. Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Objet WebBrowser. Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Objet WebBrowser. Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Objet WebBrowser. Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Objet WebBrowser. Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Objet WebBrowser. Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Objet WebBrowser. Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Objet WebBrowser. Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Objet WebBrowser. Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Objet WebBrowser. Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Objet WebBrowser. Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -47%
SAMSUNG T7 Shield Bleu – SSD Externe 1 To ...
Voir le deal
89.99 €

 

 Objet WebBrowser.

Aller en bas 
2 participants
AuteurMessage
Pedro

Pedro


Nombre de messages : 1596
Date d'inscription : 19/01/2014

Objet WebBrowser. Empty
MessageSujet: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 15:31

Bonjour.

@Klaus.

Je dois télécharger des milliers de pages web, grâce à l'objet WB et cela par l'intermédiaire d'un memo, comme le montre une partie de mon code ci-dessous.
Le problème est le suivant: le temps est très long, 1.000 traductions de mots en 72 minutes environ !!
Les pauses de 0,6 sec sont obligatoires, sinon un plantage se produit de façon aléatoire.

N'y aurait-il pas moyen de récupérer la partie visible dans un  fichier, temporaire ou autre, ce qui réduirait la durée de traitement de façon drastique ?

Merci de la suite.

Code:
        res%=dll_call2("WB_Url",wb%,adr(url$)):wait 600
         res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 600

         if trim$(item_read$(1,1))="" then wait 1000:res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 1000

         a$=item_read$(1,1)
         if instr(lower$(a$),"nous ne pouvons")>0
            message "Coupure Internet !"
            terminate
         end_if
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Objet WebBrowser. Empty
MessageSujet: Re: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 15:44

???????????

La syntaxe des appels est bonne, c'est tout ce que je puis dire...

Si tu as un problème, poste en code complet, exécutable (sous forme d'un extrait de ton programme qui soit exploitable tel quel, avec les variables et tout le toutim), ainsi qu'une descriptiondu problème (sous forme textuelle, captures d'écran, URL, ...).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1596
Date d'inscription : 19/01/2014

Objet WebBrowser. Empty
MessageSujet: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 15:47

Bonjour.

Voici donc le source complet de mon programme:

Code:
dim a$, a_partir_de%, c$, crlf$, d$, debut$, e$, element$, f$, fic$, jusque%, lettre$, lien$, nom$, nombre%, p$, url$, i%, k%, res%, tab1$(19), tab2$(19), te$, wb%, zz%

' Fait: b,f,g,h,i,j,k,l,m,n,o,q,s,t,u,v,w,x,y,z.
' 1000 mots en 72 min.
' a: de 1 à 2000, sur 24.737.
' c: de 1 à 2000, sur 34.550.
' d: de 1 à 4000, sur 41.498.
' e: de 1 à 6000, sur 35.527.
' p: de 1 à 2000, sur 27.288.
' r: de 1 à 12000, sur 36.851.
' 14.764 mots traduits.
lettre$="d"
nombre%=41498
a_partir_de%=4001
jusque%=15000

crlf$=chr$(10)+chr$(13)

lien$="https://dictionary.cambridge.org/dictionary/french-english/"

dll_on "kgf"

maximize 0

memo 1
left 1,550:width 1,500:height 1,700
bar_both 1
font_size 1,12:font_bold 1:font_color 1,0,0,255

dlist 2:dlist 3

fic$="c:\cambridge\dico_cambridge.txt"
if file_exists(fic$)=1 then file_load 3,fic$

wb%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,500,700)

c$="Ã:copyright: ê Ã:registered: è Å“ ç É ï â ä û ô ß ö ü Ãœ Ö ù à "
d$="é  ê  î  è  oe ç  é  ï  â  ä  û  ô  ß  ö  ü  Ü  Ö  ù  à "

debut$=time$

for k%=1 to 19
    tab1$(k%)=mid$(c$,k%*3-2,2)
    tab2$(k%)=trim$(mid$(d$,k%*3-2,2))
next k%

d$="c:\larousse\larousse"+lettre$
dir_change d$

nom$=file_find_first$

k%=0
while nom$<>"_"
      k%=k%+1
      nom$=file_find_next$
      
      if k%>=a_partir_de% and k%<=jusque% and left$(nom$,1)<>"."
         if right$(nom$,4)=".htm" then nom$=left$(nom$,len(nom$)-4)
         caption 0,str$(k%)+"/"+str$(jusque%)+": "+nom$+", début à "+debut$+", il est "+time$+"."

         url$=lien$+nom$
         res%=dll_call2("WB_Url",wb%,adr(url$)):wait 600
         res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 600

         if trim$(item_read$(1,1))="" then wait 1000:res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 1000

         a$=item_read$(1,1)
         if instr(lower$(a$),"nous ne pouvons")>0
            message "Coupure Internet !"
            terminate
         end_if

         for i%=1 to count(1)
             a$=item_read$(1,i%)
             if a$<>"" then corriger_ligne()
             item_add 2,a$
         next i%

         ' Le mot comporte-t-il des traductions ?
         element$="Translation of ":chercher()
         if res%>0
            for i%=res%-1 to 1 step -1:item_delete 2,i%:next i%

            for i%=1 to count(2)
                a$=trim$(item_read$(2,i%))
                if instr(a$,"GLOBAL French-English Dictionary")+instr(a$,"PASSWORD French-English Dictionary")>0 then exit_for
                ' Translation of xénophobie – French–English dictionary
                zz%=instr(a$,"Translation of "):if zz%>0 then a$=trim$(left$(a$,instr(a$,"–")-1))
                if a$<>"" then item_add 3,a$
            next i%
            item_add 3,"*"
            file_save 3,fic$
         end_if

         clear 1:clear 2
      end_if
end_while

i%=0
for k%=1 to count(3)
    a$=item_read$(3,k%)
    if instr(a$,"Translation of ")>0 then i%=i%+1
next k%

' 867 mots à l'heure.
message "Début: "+debut$+", fin: "+time$+crlf$+crlf$+"Nombre de mots traduits: "+str$(i%)+"."
terminate
end

sub corriger_ligne()
    for zz%=1 to 19
        e$=tab1$(zz%):f$=tab2$(zz%)
        res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
    next zz%

    e$="'":f$="'":res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
    e$="à":f$="à":res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
end_sub

sub chercher()
    te$=string$(255," ")
    res%=abs(dll_call3("SearchStringList",object_internal(2),adr(element$),adr(te$)))
end_sub

Pour info, les noms des fichiers recherchés correspondent en fait aux mots de la langue française, comme on peut les trouver ici:

http://www.pallier.org/liste-de-mots-francais.html
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Objet WebBrowser. Empty
MessageSujet: Re: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 16:04

Ecoute, fais un extrait du code, juste avec les accès au WB, sans toute cette gestion de fichiers Juste une hnnête URL URL, la gestion de l'URL pr WebBrowser et une capture de ce que tu constates.

J'ai tenté de déactiver les histoires de fichiers et dossiers, mais rien ne se passe.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1596
Date d'inscription : 19/01/2014

Objet WebBrowser. Empty
MessageSujet: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 16:16

Voici donc une version du code corrigé:

Code:
dim a$, a_partir_de%, c$, crlf$, d$, debut$, e$, element$, f$, fic$, jusque%, lettre$, lien$, nom$, nombre%, p$, url$, i%, k%, n%, res%, tab1$(19), tab2$(19), te$, wb%, zz%

crlf$=chr$(10)+chr$(13)

lien$="https://dictionary.cambridge.org/dictionary/french-english/"

dll_on "kgf"

maximize 0

memo 1
left 1,550:width 1,500:height 1,700
bar_both 1
font_size 1,12:font_bold 1:font_color 1,0,0,255

dlist 2:dlist 3

dlist 4:file_load 4,"mots.txt"

fic$="dico_cambridge.txt"
if file_exists(fic$)=1 then file_load 3,fic$

wb%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,500,700)

c$="Ã:copyright: ê Ã:registered: è Å“ ç É ï â ä û ô ß ö ü Ãœ Ö ù à "
d$="é  ê  î  è  oe ç  é  ï  â  ä  û  ô  ß  ö  ü  Ü  Ö  ù  à "

debut$=time$

for k%=1 to 19
    tab1$(k%)=mid$(c$,k%*3-2,2)
    tab2$(k%)=trim$(mid$(d$,k%*3-2,2))
next k%

for n%=1 to count(4)
      nom$=item_read$(4,n%)

         if right$(nom$,4)=".htm" then nom$=left$(nom$,len(nom$)-4)
         caption 0,str$(n%)+"/"+str$(count(4))

         url$=lien$+nom$
         res%=dll_call2("WB_Url",wb%,adr(url$)):wait 600
         res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 600

         if trim$(item_read$(1,1))="" then wait 1000:res%=dll_call2("WB_CopyToMemo",wb%,handle(1)):wait 1000

         a$=item_read$(1,1)
         if instr(lower$(a$),"nous ne pouvons")>0
            message "Coupure Internet !"
            terminate
         end_if

         for i%=1 to count(1)
             a$=item_read$(1,i%)
             if a$<>"" then corriger_ligne()
             item_add 2,a$
         next i%

         ' Le mot comporte-t-il des traductions ?
         element$="Translation of ":chercher()
         if res%>0
            for i%=res%-1 to 1 step -1:item_delete 2,i%:next i%

            for i%=1 to count(2)
                a$=trim$(item_read$(2,i%))
                if instr(a$,"GLOBAL French-English Dictionary")+instr(a$,"PASSWORD French-English Dictionary")>0 then exit_for
                ' Translation of xénophobie – French–English dictionary
                zz%=instr(a$,"Translation of "):if zz%>0 then a$=trim$(left$(a$,instr(a$,"–")-1))
                if a$<>"" then item_add 3,a$
            next i%
            item_add 3,"*"
            file_save 3,fic$
         end_if

         clear 1:clear 2
next n%

i%=0
for k%=1 to count(3)
    a$=item_read$(3,k%)
    if instr(a$,"Translation of ")>0 then i%=i%+1
next k%

message "Début: "+debut$+", fin: "+time$+crlf$+crlf$+"Nombre de mots traduits: "+str$(i%)+"."
terminate
end

sub corriger_ligne()
    for zz%=1 to 19
        e$=tab1$(zz%):f$=tab2$(zz%)
        res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
    next zz%

    e$="'":f$="'":res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
    e$="à":f$="à":res%=dll_call5("ReplaceStringInString",adr(a$),adr(e$),adr(f$),adr(a$),0)
end_sub

sub chercher()
    te$=string$(255," ")
    res%=abs(dll_call3("SearchStringList",object_internal(2),adr(element$),adr(te$)))
end_sub

Quant au fichier mots.txt, tu peux récupérer une partie des mots du site ici (par exemple les 200 premiers mots), puis enregistrer la sélection dans ce fichier mots.txt:
http://www.pallier.org/liste-de-mots-francais.html

Merci de la suite.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Objet WebBrowser. Empty
MessageSujet: Re: Objet WebBrowser.   Objet WebBrowser. EmptyMer 12 Aoû 2020 - 16:39

Je constate que pour chaque mot dans la liste, le programme va chercher une page sur le site choisie (toujours l même,d'ailleurs... je ne vois nulle part apparaître le mot choisi). Puis, dans le mémo de droite,, il y a le contenu de la page qui s'affiche sous forme de texte. Ca semble marcher, bien que j'aie l'impression que l'URL n'est pas correcte puisque la page chargée est neutre, pas liée u mot choisi.

C'est après que ça se gâte. Je ne comprends pas ceci:
Code:
        if res%>0
            for i%=res%-1 to 1 step -1:item_delete 2,i%:next i%

            for i%=1 to count(2)

Si la DLIST 2 contient des lignes, tu commences par les supprimer, puis tu boucles sue ces lignes et, forcément, il y a un plantage par "index out of bounds" dans le second FOR... Normal, non ?

Je pense que tu devrais revoir la logique de ton programme.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Objet WebBrowser. Empty
MessageSujet: Re: Objet WebBrowser.   Objet WebBrowser. Empty

Revenir en haut Aller en bas
 
Objet WebBrowser.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Objet WebBrowser
» Objet DTP.
» WebBrowser sur une form Panoramic !
» Détermine si oui ou non un objet est PARENT d'un autre objet
» Version instantanée du 17 juillet 2011: PANORAMIC V 0.9.22i1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: