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
» bouton dans autre form que 0
Objet WebBrowser. Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
Objet WebBrowser. Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Objet WebBrowser. Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Objet WebBrowser. Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Objet WebBrowser. Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Objet WebBrowser. Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Objet WebBrowser. Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Objet WebBrowser. Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Objet WebBrowser. Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Objet WebBrowser. Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Objet WebBrowser. Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Objet WebBrowser. Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Objet WebBrowser. Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Objet WebBrowser. Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Objet WebBrowser. Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

 

 Objet WebBrowser.

Aller en bas 
2 participants
AuteurMessage
Pedro

Pedro


Nombre de messages : 1555
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 : 12289
Age : 74
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 : 1555
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 : 12289
Age : 74
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 : 1555
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 : 12289
Age : 74
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
» Du bon usage de l'objet WebBrowser.
» 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: