FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Mah-Jong européen new-look
par jjn4 Aujourd'hui à 15:48

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 13:46

» a l'aide klaus
par Minibug Aujourd'hui à 11:42

» KGF_dll - nouvelles versions
par Minibug Aujourd'hui à 1:48

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Aujourd'hui à 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» API Windows
par Klaus Jeu 7 Déc 2017 - 21:03

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

» j'ai un petit problème
par JL35 Mer 6 Déc 2017 - 21:58

» source vumetre avec delphi
par Klaus Mar 5 Déc 2017 - 23:22

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 Problème avec 'DownLoadFile'.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 17:05

Bonjour.

@Klaus.

Le code suivant affiche un message d'erreur: Impossible to load the file, line 18.

Je ne comprends pas pourquoi.

Merci de ton aide.

Déjà, il apparaît que le caractère '&' doive être doublé. Pourquoi ?

Et lorsque je saisis cette URL dans un navigateur, sans toutefois doubler le '&', tout fonctionne parfaitement.

Code:
dll_on "kgf"

dim car$, url$, fichier$, res%, mot$

car$=chr$(38)
mot$="près"

list 1

url$="http://fr.pons.com/traduction?q="+mot$+car$+car$+"l=enfr"+car$+car$+"in=fr"+car$+car$+"lf=fr"

' http://fr.pons.com/traduction?q=près&l=enfr&in=fr&lf=fr
message url$

fichier$="c:\a\mot.htm"
res%=DLL_call2("DownloadFile",adr(url$),adr(fichier$))
clear 1
file_load 1,fichier$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 17:33

C'est normal. Ton URL conduit vers une page HTML qui est déterminée en fonction de paramètres passés dans l'URL. Ce n'est pas un lien vers un fichier HTML qui pourrait être téléchargé simplement.

Essaie plutôt de charger le HTML de la page dans un mémo (et pas dans une list), comme dans l'exemple ci-après:
Code:
dll_on "kgf"

dim car$, url$, fichier$, res%, mot$

car$=chr$(38)
mot$="près"

' list 1
memo 1 : full_space 1 : width 1,width(1)/2-5 : bar_both 1
memo 2 : width 2,width(1) : left 2,width(1)+2 : height 2,height(1) : bar_both 2

url$="http://fr.pons.com/traduction?q="+mot$+car$+car$+"l=enfr"+car$+car$+"in=fr"+car$+car$+"lf=fr"

' http://fr.pons.com/traduction?q=près&l=enfr&in=fr&lf=fr
caption 0,"http://fr.pons.com/traduction?q=près&l=enfr&in=fr&lf=fr"
message url$

fichier$="C:\Users\klausgunther\Documents\Mes projets\Mes projets Delphi\KGF\mot.htm"
' res%=DLL_call2("DownloadFile",adr(url$),adr(fichier$))
' message "res%="+str$(res%)

res% = DLL_call3("GetHtmlFromURL",adr(url$),handle(1),1)
message "res%="+str$(res%)
res% = DLL_call3("GetHtmlFromURL",adr(url$),handle(2),4)
message "res%="+str$(res%)
' clear 1
' file_load 1,fichier$

En ce qui concerne le doublement du "&", ça vient (encore et toujours) du système de traitements des chaînes ds caractères de Panoramic. On n'y peut rien. Regarde ce code:
Code:
dim guillemet$, ampersand$, s$

ampersand$ = chr$(38)
guillemet$ = chr$(34)

s$ = ampersand$+guillemet$+"abc"+ampersand$+guillemet$
message s$
print s$
Tu peux voir que pour l'affichage, le "&" provoque le soulignement du caractère suivant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 18:59

Bonjour.

Alors Klaus, que penses-tu de mes avancées ?

Malgré tout, le CTRL A et le CTRL C ne fonctionnent toujours pas.
Il est possible de taper S lorsque la liste déroulante est visible, afin d'actionner 'Sélectionner tout', mais cela ne fonctionne pas non plus.
Merci de ton aide.

Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)


url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))
' wb%=dll_call1("WBFunction",8)

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))

pause 1000

res%=dll_call2("AbsoluteMouseRightClick",100,200)
res%=dll_call5("SendSingleKey",y%,65,1,0,0)  :  ' envoyer ctrl/A
res%=dll_call5("SendSingleKey",y%,67,1,0,0)  :  ' envoyer ctrl/C

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 21:05

Pas mal déjà, Pédro !

Actuellement, tu te heurtes à un double problème:

1. si tu fais un clic droit par programme, le menu contextuel apparaît. Or, celui-ci bloque le déroulement du programme, et tu n'auras la main pour envoyer d'autres touches que lorsque le menu contextuel sera fermé. donc, trop tard. Il faudrait pouvoir envoyer la lettre "S" pour sélectionner tout, et ainsi de suite. Mais tu n'auras pas la main pour le faire.

2. Manuellement, tu ne peux pas sélectionner la page entière par ctrl/A-ctrl/C. C'est bloqué sur cette page. Et donc, tu ne peux pas non plus le faire par programme. J'ai essayé de plusieurs manières, mais c'est bloqué.

Je cherche une autre solution, et je te tiendrai au courant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 21:55

Bonsoir.

Merci Klaus de ta réponse rapide.

Tu précises que les CTRL-A et CTRL-C ne sont pas actifs à l'aide du source Panoramic.
Mais, par contre, ils le sont bien sur la page Web de Pons, hormis Panoramic.

Et là, je ne comprends vraiment pas pourquoi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 23:15

Ceci est lié à l'objet TWebBrowser de MicroSoft que j'utilise pour les fonctions WBxxx. Je ne peux rien y faire.

Mais j'ai une solution ! J'ai mis une nouvelle version de KGF.dll en ligne. Maintenant, la fonction WBFunction a un nouveau code opération 11 qui place l'URL actuel du WebBrowser dans le presse-papier. On peut alors la copier dans une variable, puis utiliser la fonction GetHtmlFromURL pour prendre le HTML. Voici comment faire:
Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))

pause 1000
res%=dll_call2("AbsoluteMouseLeftClick",100,200)
pause 300
url1$ = string$(255," ")
res% = DLL_call1("WBFunction",11)
url1$ = clipboard_string_paste$

form 2 : width 2,1000 : height 2,800
memo 3 : parent 3,2 : full_space 3 : bar_both 3
clipboard_paste 3

res% = DLL_call3("GetHtmlFromURL",adr(url1$),handle(3),1)


Bon courage - tu es bien parti !


Dernière édition par Klaus le Dim 1 Nov 2015 - 3:40, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Sam 31 Oct 2015 - 23:46

Bonsoir.

Désolé Klaus, mais cela ne fonctionne pas.

J'ai ajouté un message url1$ en ligne 34, et Panoramic m'affiche le code du programme !!

Merci de la suite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 0:32

Voici ce que ça donne chez moi:

Puis, le contenu HTML récupéré:

Tout est correct.

Je pense que tu n'as pas chargé la bonne version de KGF.dll. Prends la DLL sur mon WebDav, ou alors sur mon site miroir, mais PAS sur mon site habituel ! L'hébergeur a bloqué l'accès et je ne peux pas le mettre à jour, pour le moment.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 4:56

Avec la nouvelle version que je viens de poster, c'est encore plus simple ! WBFunctioin a maintenant un code 12 qui sélectionne tout le texte de la page actuelle:
Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))

pause 1000
res%=dll_call2("AbsoluteMouseLeftClick",100,200)
pause 300
res% = DLL_call1("WBFunction",12)
pause 300
res% = DLL_call1("WBFunction",10)
pause 300

form 2 : width 2,1000 : height 2,800
memo 3 : parent 3,2 : full_space 3 : bar_both 3
clipboard_paste 3

Ainsi, le résultat sera peut-être plus simple à décoder. En tout cas, maintenant, il y a deux possibilités pour récupérer l'information.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 11:15

Bonjour.

Un grand merci Klaus, car cela semble fonctionner.
J'obtiens même le code de la page, débarassé des tags html.
Je te suggère une nouvelle fonction 13 comme suit:

res% = DLL_call2("WBFunction",13,handle(no))

Cette fonction exécuterait les tâches suivantes:
. CTRL A, puis CTRL C.
. puis copie du presse-papier dans l'objet dont on connaît le handle.

Et là, ce serait vraiment le top.


Code:
dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))

pause 1000
res%=dll_call2("AbsoluteMouseLeftClick",100,200)
pause 300
res% = DLL_call1("WBFunction",12) : ' CTRL A
pause 1000
res% = DLL_call1("WBFunction",10) : ' CTRL C
pause 1000

form 2 : width 2,400 : height 2,400
memo 3 : parent 3,2 : full_space 3 : bar_both 3
clipboard_paste 3

' url1$ = string$(255," ")
' res% = DLL_call1("WBFunction",11)
' url1$ = clipboard_string_paste$

' res% = DLL_call3("GetHtmlFromURL",adr(url1$),handle(3),1)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 11:45

Aïe... Dans ce cas, WBFunction aurait 2 paramètres, et il faudrait re prendre tous les programmes utilisant cette fonction pour corriger cela, et ceci pour tous ceux qui l'utilisent...

Tu pourrais peut-être faire une SUB avec le numéro d'objet en paramètre, et faire les deux appels à WBFunction dans cette SUB ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 11:48

Bonjour.

Je penserais plutôt à une commande du genre: WbCopy(...).
Enfin, si cela est toutefois possible.

Merci Klaus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Dim 1 Nov 2015 - 12:17

WBCopy ? Oui, c'est possible. Je vais voir ça, ce soir. En attendant, fais ceci:
Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))
pause 1000

form 2 : width 2,1000 : height 2,800
memo 3 : parent 3,2 : full_space 3 : bar_both 3

WBCopy(3)
to_foreground 2
end

sub WBCopy(memo%)
  res%=dll_call2("AbsoluteMouseLeftClick",100,200)
  pause 300
  res% = DLL_call1("WBFunction",12)
  pause 300
  res% = DLL_call1("WBFunction",10)
  pause 300
  clipboard_paste memo%
end_sub


Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 0:28

Et voici la toute nouvelle fonction WBCopyToMemo qui rend les choses encore plus simples:
Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))
pause 1000

form 2 : width 2,1000 : height 2,800
memo 3 : parent 3,2 : full_space 3 : bar_both 3

res% = dll_call1("WBCopyToMemo",handle(3))
to_foreground 2 : ' nécessaire uniquement parce que le mémo 3 est dans une form séparée !
end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 9:39

Bonjour.

Un grand merci Klaus pour cette nouvelle fonction.
Je la testerai ce jour.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 11:43

Bonjour.

@Klaus.

Je viens de télécharger la nouvelle version de kgf.dll sur ton webdav.

J'obtiens le message d'erreur suivant, avec ton dernier code:

Not correct arithmetic expression: error in function line 10

Merci de la suite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 11:57

Je ne vois qu'un problème de version de KGF.dll. J'ai retesté - chez moi, je n'ai pas cette erreur. Et "ligne 10" ne rime à rien...

Essaie ce code:
Code:

dll_on "kgf"

dim b$, c$, car$, url$, fichier$, res%, mot$, x%, wb%, y%
dim url1$

b$=chr$(13)
car$=chr$(38)
mot$="près"

url$ = string$(25," ")
res% = dll_call1("KGFdllVersion",adr(url$))
if res%<525
  message "Version actuelle: "+url$+chr$(13)+chr$(10)+"Version minimale requise: KGF.dll V05.25 01/11/2015"
  end
end_if

maximize 0

y%=dll_call1("WBCreate",handle(0))
res%=dll_call4("WBLocate",0,0,1600,900)

url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
res%=dll_call1("WBUrl",adr(url$))

res%=dll_call2("AbsoluteMousePosition",490,390)
wb% = dll_call2("GetObjectUnderPosition",490,390)

pause 1000
x%=dll_call2("SendString",wb%,adr(mot$))
x%=dll_call2("SendString",wb%,adr(b$))
pause 1000

form 2 : width 2,1000 : height 2,800
memo 3 : parent 3,2 : full_space 3 : bar_both 3

res% = dll_call1("WBCopyToMemo",handle(3))
to_foreground 2 : ' nécessaire uniquement parce que le mémo 3 est dans une form séparée !
end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 12:14

Bonjour.

Je dispose de la version V05.24 du 1er nov.
Pourtant, c'est bien la version téléchargée sur ton webdav.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Lun 2 Nov 2015 - 12:22

Désolé - j'ai dû me planter avec mes copies. J'ai réctifié, et tu peux recharger.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 9:16

Bonjour.

@Klaus.

Ce serait sympa de tester le petit code suivant.
Chez moi, le programme se bloque au mot 'abeille (étape 3)'.
En est-il de même chez toi ?

Je ne comprends pas la source du problème !
Merci de ton aide.


Code:
' Version du 2 nov 2015.
' Durée: 11 sec pour 2 mots.

dll_on "kgf"

dim b$, c$, car$, CRLF$, duree%, url$, fichier$, false%, flag%, flag2%, flag3%, k%, n%, nombre_mots%, res%, mot$, true%, x%, xx%, wb%, y%, yy%
dim debut$, fin$, francais$, anglais$, ligne$, liste_mots$, mot_a_trouver$, mot_precedent$, sens$, type$, url1$

form 2
width 2,900
memo 1 : parent 1,2 : full_space 1 : bar_both 1
combo 3 : parent 3,2
width 3,800
font_size 3,16
hide 2

duree%=1500
true%=1
car$=chr$(38)
CRLF$=chr$(13)

maximize 0

data "abaisser","abandon","abandonné","abandonner","abasourdi","abats","abattement","abattis","abattoir","abattre","abbaye","abbé","abbesse","abc","abcès","abdication"
data "abdiquer","abdomen","abeille","Aberdeen","aberrant","abîme","abîmer","abject","ablation","abnégation","aboiement","abolir","abominable","ZZZ"

debut$=time$

    ' é = é
    ' ê = ê
    ' î = î
    ' è = è
    ' Å“ = oe
    ' à (à suivi d'un espace) = à
    ' ç = ç
    ' É = é (majuscule)
    ' ï = ï
    ' â = â
    ' û = û
    ' ô = ô
    
    ' 0: lecture de tous les mots.
    nombre_mots%=0

    dlist 999
    file_load 999,"dico_français_espagnol.txt"

    yy%=0
    mot_precedent$=""

    ' abbaye;fs;abadía;fs;
    for n%=1 to 100

        if nombre_mots%=0
           ' c$=item_read$(999,n%)
           read c$
           c$=c$+";"
          
           if c$="ZZZ" then exit_for
           ' caption 0,left$(c$,instr(c$,";")-1)+" ("+str$(n%)+")"
           caption 0,c$+" ("+str$(n%)+")"
        end_if

        if nombre_mots%=1
           mot$="près"
           c$=mot$
        end_if

        if instr(c$,"-")+instr(c$,"!")+instr(c$,"?")+instr(c$,".")+instr(c$,"'")=0
           if instr(c$,";locut;")+numeric(left$(c$,1))=0
              if instr(c$,";")>0
                 xx%=instr(c$,";")
                 mot$=left$(c$,xx%-1)
                 c$=right_pos$(c$,xx%+1)
              end_if

              mot_a_trouver$=mot$

              if len(mot$)>1 and instr(mot$," ")=0 and mot$<>mot_precedent$
                 yy%=yy%+1
                 if nombre_mots%>0 and yy%>nombre_mots% then exit_for

                 ' liste_mots$=liste_mots$+mot$+","

                 afficher_mot()
                 lire()
                 pause duree%
                 mot_precedent$=mot_a_trouver$
              end_if
           end_if

           if nombre_mots%=1 then exit_for
        end_if
    next n%

    fin$=time$

    text 3,item_read$(3,1)
    file_save 3,"c:\a\dico_anglais.txt"

    show 2

    ' file_open_write 99,"c:\a\liste.txt"
    ' file_writeln 99,liste_mots$
    ' file_close 99

    message "Début: "+debut$+CRLF$+"Fin: "+fin$
end

sub afficher_mot()
    caption 0,mot$+" (1)"
    y%=dll_call1("WBCreate",handle(0))
    res%=dll_call4("WBLocate",0,0,1600,900)

    url$="http://fr.pons.com/traduction?&l=enfr&in=fr&lf=fr"
    res%=dll_call1("WBUrl",adr(url$))

    res%=dll_call2("AbsoluteMousePosition",490,390)
    wb%=dll_call2("GetObjectUnderPosition",490,390)

    pause duree%
    c$=mot$+CRLF$
    x%=dll_call2("SendStringAsText",wb%,adr(c$))
    pause duree%

    res% = dll_call1("WBCopyToMemo",handle(1))
    pause duree%
    res% = dll_call0("WBDelete")
    pause duree%
    caption 0,mot$+" (2)"
end_sub

sub lire()
    caption 0,mot$+" (3)"
    francais$=""
    anglais$=""
    sens$=""
    type$=""
    flag3%=false%

    k%=0
    while 1=1
          k%=k%+1
          b$=trim$(item_read$(1,k%))
          if instr(b$,"[")>0 then k%=k%-1:exit_while
    end_while
    caption 0,mot$+" (4)"
    while 1=1
          k%=k%+1
          b$=trim$(item_read$(1,k%))

          if b$="Vous ne trouvez pas un mot, une tournure idiomatique ou une traduction ?" then exit_while
          flag2%=false%
          flag%=true%
          if len(b$)=0 then flag%=false%
          
          if left$(b$,32)="Expressions couramment utilisées" or left$(b$,10)="Tournures:"
             flag%=false%
             flag3%=true%
          end_if
          
          if b$="Envoyez-nous vos réactions" then flag%=false%
          if b$="Liens vers des informations complémentaires" then flag%=false%
          if b$="français" then flag%=false%
          if b$="français du Canada" then flag%=false%
          if b$="Anglais britannique" then flag%=false%
          if b$="Anglais américain" then flag%=false%
          if b$="Ajouter à mes favoris" then flag%=false%
          if b$="A sélectionner pour l'entraîneur de vocabulaire" then flag%=false%
          if b$="Voir les mots de vocabulaire sélectionnés" then flag%=false%

          if flag%=true%
             ' I.        manger    [m?~?e] VERBE vt                          Tableau de conjugaison
             ' II. chien [?j?~] ADJ inv (avare)
             ' flag3%=false%
             ligne$=b$
             if left$(b$,1)="I" or (instr(b$,"[")>0 and instr(b$,"[ou ")=0)
                flag2%=true%
                b$=trim$(right_pos$(b$,instr(b$,".")+1))
                if right$(b$,22)="Tableau de conjugaison" then b$=trim$(left$(b$,len(b$)-22))
                ' manger    [m?~?e] VERBE vt
                x%=instr(b$,"[")
                if x%>0
                   sens$=trim$(left$(b$,x%-1))
                   type$="("+trim$(right_pos$(b$,instr(b$,"]")+1))+")"
                 end_if
             end_if

             '  1. manger (se nourrir de, absorber):
             if numeric(left$(b$,1))=1 or right$(b$,1)=":"
                flag2%=true%
                sens$=trim$(right_pos$(b$,instr(b$,".")+1))

                c$=left$(mot$,len(mot$)-1)
                if left$(sens$,len(c$))=c$ then sens$=trim$(right_pos$(sens$,len(c$)+1))
                
                if right$(sens$,1)=":" then sens$=trim$(left$(sens$,len(sens$)-1))
             end_if

             if flag2%=false%
                francais$=b$
                k%=k%+3
                anglais$=trim$(item_read$(1,k%))
              end_if
            
             if len(anglais$)>0
                ' if flag3%=true% then sens$="":type$=""
                if left$(anglais$,3)="to " then type$="(VERBE)"
                if flag3%=true% or francais$=sens$ then sens$=""

                if sens$=left$(mot$,len(mot$)-1) then sens$=""

                c$=francais$+" "+sens$+" "+type$+" = "+anglais$
                x%=instr(c$,"((")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)
                x%=instr(c$,"))")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)

                while 1=1
                      x%=instr(c$,"  ")
                      if x%=0 then exit_while
                      c$=left$(c$,x%)+right_pos$(c$,x%+2)
                end_while

                if right$(c$,4)="Brit" then c$=left$(c$,len(c$)-4)+"(Brit)"
                if right$(c$,2)="Am" then c$=left$(c$,len(c$)-2)+"(Am)"

                item_add 3,c$
                anglais$=""
                if type$="(VERBE)" then type$=""
             end_if
          end_if
       end_while
       clear 1
end_sub


Et le code suivant provoque un Access Violation dans KGF.dll.

Mais, à ma grande satisfaction, il permet d'accéder directement aux traductions d'un mot quelconque, contrairement
à ce que nous pensions avec le code précédent.

Code:
' Aide de KGF dans une programme Panoramic.bas

dim res%, WB%, url$, KGF$, gauche%, haut%, largeur%, hauteur%
KGF$ = "KGF.dll"
url$ = "http://fr.pons.com/traduction?q=manger&l=enfr&in=fr&lf=fr"

dll_on KGF$

width 0,1600 : height 0,900

memo 1
left 1,-200

WB% = dll_call1("WB_Create",handle(0))
res% = DLL_call5("GetFormClientMetrics",handle(0),adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%))
res% = dll_call5("WB_Locate",WB%,0,0,largeur%,hauteur%)

res% = dll_call2("WB_Url",WB%,adr(url$))
pause 1000

res% = dll_call1("WBCopyToMemo",handle(1))
pause 1000

end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 13:04

Je vais regarder ces deux points dans la journée...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 13:18

Pour me premier problème:
je n'ai pas les fichiers, et il n'y plus les liens vers ton WebDav dans ta signature...

Pour le deuxième problème, c'était simple:

Code:
' Aide de KGF dans une programme Panoramic.bas

dim res%, WB%, url$, KGF$, gauche%, haut%, largeur%, hauteur%
KGF$ = "KGF.dll"
url$ = "http://fr.pons.com/traduction?q=manger&l=enfr&in=fr&lf=fr"

dll_on KGF$

width 0,1600 : height 0,900

memo 1
left 1,-200

WB% = dll_call1("WB_Create",handle(0))
res% = DLL_call5("GetFormClientMetrics",handle(0),adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%))
res% = dll_call5("WB_Locate",WB%,0,0,largeur%,hauteur%)

res% = dll_call2("WB_Url",WB%,adr(url$))
pause 1000

res% = dll_call2("WB_CopyToMemo",WB%,handle(1))    : ' <========= WB_Copy aulieu de WBCopy !
pause 1000

end

EDIT

J'ai mis une nouvelle version en ligne qui rend inutile l'utilisation de AbsoluteMousePosition avant WB_CopyToMemo. Maintenant, on peut même placer un objet par-dessus le WebBrowser, et ça marche quand-même, comme le mémo 1. D'ailleurs, pour éviter des retours à la ligne intempestifs, il vaut mieux ajouter BAR_BOTH pour le mémo:
Code:
' Aide de KGF dans une programme Panoramic.bas

dim res%, WB%, url$, KGF$, gauche%, haut%, largeur%, hauteur%
KGF$ = "KGF.dll"
url$ = "http://fr.pons.com/traduction?q=manger&l=enfr&in=fr&lf=fr"

dll_on KGF$

width 0,1600 : height 0,900

WB% = dll_call1("WB_Create",handle(0))
res% = DLL_call5("GetFormClientMetrics",handle(0),adr(gauche%),adr(haut%),adr(largeur%),adr(hauteur%))
res% = dll_call5("WB_Locate",WB%,0,0,largeur%,hauteur%)

memo 1
left 1,200 : bar_both 1

res% = dll_call2("WB_Url",WB%,adr(url$))
pause 1000

res% = dll_call2("WB_CopyToMemo",WB%,handle(1))    : ' <========= WB_Copy aulieu de WBCopy !
pause 1000

end
Là, on voit le texte copié.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 16:35

Bonjour.

Merci encore Klaus pour cette nouvelle fonction.

Toutefois, mon code ci-dessous se bloque avec un mot au hasard (étape 3)'.
C'était trop beau !

Tu peux le tester directement, car il ne fait appel à aucun fichier externe.


Code:
' Version du 2 nov 2015.
' Durée: 11 sec pour 2 mots.

dll_on "kgf"

dim b$, c$, car$, CRLF$, duree%, url$, fichier$, false%, flag%, flag2%, flag3%, k%, n%, nombre_mots%, res%, mot$, true%, x%, xx%, wb%, y%, yy%
dim debut$, fin$, francais$, anglais$, ligne$, liste_mots$, mot_a_trouver$, mot_precedent$, sens$, type$, url1$

form 2
width 2,900
memo 1 : parent 1,2 : full_space 1 : bar_both 1
combo 3 : parent 3,2
width 3,800
font_size 3,16
hide 2

duree%=1500
true%=1
car$=chr$(38)
CRLF$=chr$(13)

maximize 0

data "abaisser","abandon","abandonné","abandonner","abasourdi","abats","abattement","abattis","abattoir","abattre","abbaye","abbé","abbesse","abc","abcès","abdication"
data "abdiquer","abdomen","abeille","Aberdeen","aberrant","abîme","abîmer","abject","ablation","abnégation","aboiement","abolir","abominable","ZZZ"

debut$=time$

    ' é = é
    ' ê = ê
    ' î = î
    ' è = è
    ' Å“ = oe
    ' à (à suivi d'un espace) = à
    ' ç = ç
    ' É = é (majuscule)
    ' ï = ï
    ' â = â
    ' û = û
    ' ô = ô
    
    ' 0: lecture de tous les mots.
    nombre_mots%=0

    ' dlist 999
    ' file_load 999,"dico_français_espagnol.txt"

    yy%=0
    mot_precedent$=""

    ' abbaye;fs;abadía;fs;
    for n%=1 to 100

        if nombre_mots%=0
           ' c$=item_read$(999,n%)
           read c$
           c$=c$+";"
          
           if c$="ZZZ" then exit_for
           ' caption 0,left$(c$,instr(c$,";")-1)+" ("+str$(n%)+")"
           caption 0,c$+" ("+str$(n%)+")"
        end_if

        if nombre_mots%=1
           mot$="près"
           c$=mot$
        end_if

        if instr(c$,"-")+instr(c$,"!")+instr(c$,"?")+instr(c$,".")+instr(c$,"'")=0
           if instr(c$,";locut;")+numeric(left$(c$,1))=0
              if instr(c$,";")>0
                 xx%=instr(c$,";")
                 mot$=left$(c$,xx%-1)
                 c$=right_pos$(c$,xx%+1)
              end_if

              mot_a_trouver$=mot$

              if len(mot$)>1 and instr(mot$," ")=0 and mot$<>mot_precedent$
                 yy%=yy%+1
                 if nombre_mots%>0 and yy%>nombre_mots% then exit_for

                 ' liste_mots$=liste_mots$+mot$+","

                 afficher_mot()
                 lire()
                 pause duree%
                 mot_precedent$=mot_a_trouver$
              end_if
           end_if

           if nombre_mots%=1 then exit_for
        end_if
    next n%

    fin$=time$

    text 3,item_read$(3,1)
    file_save 3,"c:\a\dico_anglais.txt"

    show 2

    ' file_open_write 99,"c:\a\liste.txt"
    ' file_writeln 99,liste_mots$
    ' file_close 99

    message "Début: "+debut$+CRLF$+"Fin: "+fin$
end

sub afficher_mot()
    caption 0,mot$+" (1)"
    y%=dll_call1("WBCreate",handle(0))
    res%=dll_call4("WBLocate",0,0,1600,900)

    url$="http://fr.pons.com/traduction?q="+mot$+"&l=enfr&in=fr&lf=fr"
    
    res%=dll_call2("WB_Url",y%,adr(url$))
    pause duree%

    res% = dll_call2("WB_CopyToMemo",y%,handle(1))
    pause duree%
    
    res% = dll_call0("WBDelete")
    pause duree%
    caption 0,mot$+" (2)"
end_sub

sub lire()
    caption 0,mot$+" (3)"
    francais$=""
    anglais$=""
    sens$=""
    type$=""
    flag3%=false%

    k%=0
    while 1=1
          k%=k%+1
          b$=trim$(item_read$(1,k%))
          if instr(b$,"[")>0 then k%=k%-1:exit_while
    end_while
    caption 0,mot$+" (4)"
    while 1=1
          k%=k%+1
          b$=trim$(item_read$(1,k%))

          if b$="Vous ne trouvez pas un mot, une tournure idiomatique ou une traduction ?" then exit_while
          flag2%=false%
          flag%=true%
          if len(b$)=0 then flag%=false%
          
          if left$(b$,32)="Expressions couramment utilisées" or left$(b$,10)="Tournures:"
             flag%=false%
             flag3%=true%
          end_if
          
          if b$="Envoyez-nous vos réactions" then flag%=false%
          if b$="Liens vers des informations complémentaires" then flag%=false%
          if b$="français" then flag%=false%
          if b$="français du Canada" then flag%=false%
          if b$="Anglais britannique" then flag%=false%
          if b$="Anglais américain" then flag%=false%
          if b$="Ajouter à mes favoris" then flag%=false%
          if b$="A sélectionner pour l'entraîneur de vocabulaire" then flag%=false%
          if b$="Voir les mots de vocabulaire sélectionnés" then flag%=false%

          if flag%=true%
             ' I.        manger    [m?~?e] VERBE vt                          Tableau de conjugaison
             ' II. chien [?j?~] ADJ inv (avare)
             ' flag3%=false%
             ligne$=b$
             if left$(b$,1)="I" or (instr(b$,"[")>0 and instr(b$,"[ou ")=0)
                flag2%=true%
                b$=trim$(right_pos$(b$,instr(b$,".")+1))
                if right$(b$,22)="Tableau de conjugaison" then b$=trim$(left$(b$,len(b$)-22))
                ' manger    [m?~?e] VERBE vt
                x%=instr(b$,"[")
                if x%>0
                   sens$=trim$(left$(b$,x%-1))
                   type$="("+trim$(right_pos$(b$,instr(b$,"]")+1))+")"
                 end_if
             end_if

             '  1. manger (se nourrir de, absorber):
             if numeric(left$(b$,1))=1 or right$(b$,1)=":"
                flag2%=true%
                sens$=trim$(right_pos$(b$,instr(b$,".")+1))

                c$=left$(mot$,len(mot$)-1)
                if left$(sens$,len(c$))=c$ then sens$=trim$(right_pos$(sens$,len(c$)+1))
                
                if right$(sens$,1)=":" then sens$=trim$(left$(sens$,len(sens$)-1))
             end_if

             if flag2%=false%
                francais$=b$
                k%=k%+3
                anglais$=trim$(item_read$(1,k%))
              end_if
            
             if len(anglais$)>0
                ' if flag3%=true% then sens$="":type$=""
                if left$(anglais$,3)="to " then type$="(VERBE)"
                if flag3%=true% or francais$=sens$ then sens$=""

                if sens$=left$(mot$,len(mot$)-1) then sens$=""

                c$=francais$+" "+sens$+" "+type$+" = "+anglais$
                x%=instr(c$,"((")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)
                x%=instr(c$,"))")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)

                while 1=1
                      x%=instr(c$,"  ")
                      if x%=0 then exit_while
                      c$=left$(c$,x%)+right_pos$(c$,x%+2)
                end_while

                if right$(c$,4)="Brit" then c$=left$(c$,len(c$)-4)+"(Brit)"
                if right$(c$,2)="Am" then c$=left$(c$,len(c$)-2)+"(Am)"

                item_add 3,c$
                anglais$=""
                if type$="(VERBE)" then type$=""
             end_if
          end_if
       end_while
       clear 1
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 17:25

Tu avais deux problèmes:
1. un délai était trop court, dans certains cas
2. dans la procedure lire(), tu ne traitais pas du tout le cas de l'absence du "["

Or, pour ce qui est du deuxième problème, cela peut arriver - et cela arrive ! - si le mot recherché n'existe pas, si le site est occupé, ou si le site "pense" qu'il est abordé par un robot, ce qui est le cas, en vérité.

Donc, voici une version qui marche:
Code:
' Version du 2 nov 2015.
' Durée: 11 sec pour 2 mots.

dll_on "kgf"

dim b$, c$, car$, CRLF$, duree%, url$, fichier$, false%, flag%, flag2%, flag3%, k%, n%, nombre_mots%, res%, mot$, true%, x%, xx%, wb%, y%, yy%
dim debut$, fin$, francais$, anglais$, ligne$, liste_mots$, mot_a_trouver$, mot_precedent$, sens$, type$, url1$

form 2
width 2,900
memo 1 : parent 1,2 : full_space 1 : bar_both 1
combo 3 : parent 3,2
width 3,800
font_size 3,16
hide 2

duree%=1500
true%=1
car$=chr$(38)
CRLF$=chr$(13)

maximize 0

data "abaisser","abandon","abandonné","abandonner","abasourdi","abats","abattement","abattis","abattoir","abattre","abbaye","abbé","abbesse","abc","abcès","abdication"
data "abdiquer","abdomen","abeille","Aberdeen","aberrant","abîme","abîmer","abject","ablation","abnégation","aboiement","abolir","abominable","ZZZ"

debut$=time$

    ' é = é
    ' ê = ê
    ' î = î
    ' è = è
    ' Å“ = oe
    ' à (à suivi d'un espace) = à
    ' ç = ç
    ' É = é (majuscule)
    ' ï = ï
    ' â = â
    ' û = û
    ' ô = ô

    ' 0: lecture de tous les mots.
    nombre_mots%=0

    ' dlist 999
    ' file_load 999,"dico_français_espagnol.txt"

    yy%=0
    mot_precedent$=""

    ' abbaye;fs;abadía;fs;
    for n%=1 to 100

        if nombre_mots%=0
          ' c$=item_read$(999,n%)
          read c$
          c$=c$+";"

          if c$="ZZZ" then exit_for
          ' caption 0,left$(c$,instr(c$,";")-1)+" ("+str$(n%)+")"
          caption 0,c$+" ("+str$(n%)+")"
        end_if

        if nombre_mots%=1
          mot$="près"
          c$=mot$
        end_if

        if instr(c$,"-")+instr(c$,"!")+instr(c$,"?")+instr(c$,".")+instr(c$,"'")=0
          if instr(c$,";locut;")+numeric(left$(c$,1))=0
              if instr(c$,";")>0
                xx%=instr(c$,";")
                mot$=left$(c$,xx%-1)
                c$=right_pos$(c$,xx%+1)
              end_if

              mot_a_trouver$=mot$

              if len(mot$)>1 and instr(mot$," ")=0 and mot$<>mot_precedent$
                yy%=yy%+1
                if nombre_mots%>0 and yy%>nombre_mots% then exit_for

                ' liste_mots$=liste_mots$+mot$+","

                afficher_mot()
                lire()
                pause duree%
                mot_precedent$=mot_a_trouver$
              end_if
          end_if

          if nombre_mots%=1 then exit_for
        end_if
    next n%

    fin$=time$

    text 3,item_read$(3,1)
    file_save 3,"c:\a\dico_anglais.txt"

    show 2

    ' file_open_write 99,"c:\a\liste.txt"
    ' file_writeln 99,liste_mots$
    ' file_close 99

    message "Début: "+debut$+CRLF$+"Fin: "+fin$
end

sub afficher_mot()
    caption 0,mot$+" (1)"
    y%=dll_call1("WBCreate",handle(0))
    res%=dll_call4("WBLocate",0,0,1600,900)

    url$="http://fr.pons.com/traduction?q="+mot$+"&l=enfr&in=fr&lf=fr"

    res%=dll_call2("WB_Url",y%,adr(url$))
    pause duree%*2  : ' **************** délai rallongé !

    res% = dll_call2("WB_CopyToMemo",y%,handle(1))
    pause duree%

    res% = dll_call0("WBDelete")
    pause duree%
    caption 0,mot$+" (2)"
end_sub

sub lire()
    caption 0,mot$+" (3)"
    francais$=""
    anglais$=""
    sens$=""
    type$=""
    flag3%=false%

    k%=0
    while 1=1
          k%=k%+1
' *********************
if k%>count(1)
  message "oups - mémo vide !'
  exit_sub
end_if
' *********************
          b$=trim$(item_read$(1,k%))
          if instr(b$,"[")>0 then k%=k%-1:exit_while
    end_while
    caption 0,mot$+" (4)"
    while 1=1
          k%=k%+1
          b$=trim$(item_read$(1,k%))

          if b$="Vous ne trouvez pas un mot, une tournure idiomatique ou une traduction ?" then exit_while
          flag2%=false%
          flag%=true%
          if len(b$)=0 then flag%=false%

          if left$(b$,32)="Expressions couramment utilisées" or left$(b$,10)="Tournures:"
            flag%=false%
            flag3%=true%
          end_if

          if b$="Envoyez-nous vos réactions" then flag%=false%
          if b$="Liens vers des informations complémentaires" then flag%=false%
          if b$="français" then flag%=false%
          if b$="français du Canada" then flag%=false%
          if b$="Anglais britannique" then flag%=false%
          if b$="Anglais américain" then flag%=false%
          if b$="Ajouter à mes favoris" then flag%=false%
          if b$="A sélectionner pour l'entraîneur de vocabulaire" then flag%=false%
          if b$="Voir les mots de vocabulaire sélectionnés" then flag%=false%

          if flag%=true%
            ' I.        manger    [m?~?e] VERBE vt                          Tableau de conjugaison
            ' II. chien [?j?~] ADJ inv (avare)
            ' flag3%=false%
            ligne$=b$
            if left$(b$,1)="I" or (instr(b$,"[")>0 and instr(b$,"[ou ")=0)
                flag2%=true%
                b$=trim$(right_pos$(b$,instr(b$,".")+1))
                if right$(b$,22)="Tableau de conjugaison" then b$=trim$(left$(b$,len(b$)-22))
                ' manger    [m?~?e] VERBE vt
                x%=instr(b$,"[")
                if x%>0
                  sens$=trim$(left$(b$,x%-1))
                  type$="("+trim$(right_pos$(b$,instr(b$,"]")+1))+")"
                end_if
            end_if

            '  1. manger (se nourrir de, absorber):
            if numeric(left$(b$,1))=1 or right$(b$,1)=":"
                flag2%=true%
                sens$=trim$(right_pos$(b$,instr(b$,".")+1))

                c$=left$(mot$,len(mot$)-1)
                if left$(sens$,len(c$))=c$ then sens$=trim$(right_pos$(sens$,len(c$)+1))

                if right$(sens$,1)=":" then sens$=trim$(left$(sens$,len(sens$)-1))
            end_if

            if flag2%=false%
                francais$=b$
                k%=k%+3
                anglais$=trim$(item_read$(1,k%))
              end_if

            if len(anglais$)>0
                ' if flag3%=true% then sens$="":type$=""
                if left$(anglais$,3)="to " then type$="(VERBE)"
                if flag3%=true% or francais$=sens$ then sens$=""

                if sens$=left$(mot$,len(mot$)-1) then sens$=""

                c$=francais$+" "+sens$+" "+type$+" = "+anglais$
                x%=instr(c$,"((")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)
                x%=instr(c$,"))")
                if x%>0 then c$=left$(c$,x%)+right_pos$(c$,x%+2)

                while 1=1
                      x%=instr(c$,"  ")
                      if x%=0 then exit_while
                      c$=left$(c$,x%)+right_pos$(c$,x%+2)
                end_while

                if right$(c$,4)="Brit" then c$=left$(c$,len(c$)-4)+"(Brit)"
                if right$(c$,2)="Am" then c$=left$(c$,len(c$)-2)+"(Am)"

                item_add 3,c$
                anglais$=""
                if type$="(VERBE)" then type$=""
            end_if
          end_if
      end_while
      clear 1
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Pedro Alvarez

avatar

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

MessageSujet: Problème avec 'DownLoadFile'.   Mar 3 Nov 2015 - 22:21

Bonsoir.

Merci Klaus, tout a l'air de bien fonctionner maintenant.

En ce qui concerne les mots non trouvés, j'ai trouvé la source du problème.

Les mots comportant des caractères accentués n'étaient pas trouvés.

J'ai donc ajouter cette petite routine.

Code:
b$="àâçéèêëiîïôöûü"
c$="aaceeeeiiioouu"
for k%=1 to len(b$)
     x%=instr(mot$,mid$(b$,k%,1))
     if x%>0 then mot$=left$(mot$,x%-1)+mid$(c$,k%,1)+right_pos$(mot$,x%+1)
next k%
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Problème avec 'DownLoadFile'.   

Revenir en haut Aller en bas
 
Problème avec 'DownLoadFile'.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [/résolu] problème avec java à l'instalation :-/
» Problème avec Java
» [Résolu] problème avec avira
» Problème avec décodeur Tv
» problème avec Outlook

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: