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
» Compilateur FBPano
par jean_debord Aujourd'hui à 10:54

» demande pour recuperer un text speciale
par pascal10000 Hier à 22:04

» Casse-tête : Echanger les positions des cavaliers
par papydall Hier à 19:51

» KGF_dll - nouvelles versions
par Klaus Hier à 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

» Déterminer le Handle de l’objet ayant le focus
par papydall Dim 16 Juil 2017 - 3:15

» Déterminer le HANDLE du Bureau
par papydall Dim 16 Juil 2017 - 1:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Tests de KGF.dll

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

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Tests de KGF.dll   Sam 6 Juin 2015 - 2:16

Bonsoir klaus,

Je crée ce topic puisque mes prochains test serons ici. C'est le meilleur endroit pour éviter de crée plein de topic.

J'ai mon premier programme avec ta dll, cela se connecte à un ftp. Je l’améliorerai dimanche.

Il faut KGF.dll dans le même dossier

Code:

' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp
dim res%, server$, id$, pwd$ , port%
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
return

connexion_ftp:
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = text$(4)

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
goto tester_connexion_ftp
return

deconnexion_ftp:
res% = dll_call0("CloseFTP")
goto tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecter" : color 8,0,255,0
else
caption 8,"Déconnecter" : color 8,255,0,0
end_if
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 2:28

Bravo, tu as saisi le principe ! Ca marche.

Je te suggère d'éviter les GOTO et de les remplacer par des GOSUB ou des appels à des SUBs. Voici cette petite modif mineure, qui ne change rien au fonctionnement de ton programme:
Code:

' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp
dim res%, server$, id$, pwd$ , port%
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
' return  <====== ne sera jamais exécuté !

connexion_ftp:
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = text$(4)

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
return

deconnexion_ftp:
res% = dll_call0("CloseFTP")
gosub tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecter" : color 8,0,255,0
else
caption 8,"Déconnecter" : color 8,255,0,0
end_if
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 2:57

Effectivement, je sais pas pourquoi j'ai utiliser les goto au lieu de gosub^^

Voici ma V2 :
Code:
' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp
dim res%, server$, id$, pwd$ , port%
height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9


text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
return

connexion_ftp:
clear 9
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = text$(4)

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
if res% = 1
res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9))
end_if
return

deconnexion_ftp:
clear 9
res% = dll_call0("CloseFTP")
gosub tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecter" : color 8,0,255,0
else
caption 8,"Déconnecter" : color 8,255,0,0
end_if
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 10:35

Très bien ! Ca progresse.

Tu pourrais inactiver les boutons pendant la phase de connexion pour éviter une fausse manipulation, et les réactiver à la fin, comme ceci:
Code:
connexion_ftp:
inactive 5 : inactive 6 : inactive 7
clear 9
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = text$(4)

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
if res% = 1
res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9))
end_if
active 5 : active 6 : active 7
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 10:41

J'ai une Question, pourquoi si je clique sur connexion, et apres une quand la connexion eT établit, si je clique sur deconexion,
Si j'appuie sur connexion j'ai panoramic qui plante systématiquement ? Pourtant j'attend 1 minute entre chaque commande au cas ou

Ou expliquer plus facilement :
Ceci me fait un bug a tout les coups :
1-Connexion
2-attendre la connexion
3-connecter appuyer sur deconexion
4-attendre pour etre sur de la deconexion
5-cliquer sur connexion

Il j'ai panoramic qui ne repond plus a chaque fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 13:10

Cela vient du fait que tu refais, à chaque connexion, l'identification du FTP. J"ai défini une variable first% pour ne le faire que la première fois, et il n'y a plus de problème:
Code:
' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp
dim res%, server$, id$, pwd$ , port%
dim first% : first% = 1
height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9


text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
return

connexion_ftp:
inactive 5 : inactive 6 : inactive 7
clear 9
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = val(text$(4))

if first%=1
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
first% = 0
end_if
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
if res% = 1
res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9))
end_if
active 5 : active 6 : active 7
return

deconnexion_ftp:
clear 9
res% = dll_call0("CloseFTP")
gosub tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecté" : color 8,0,255,0
else
caption 8,"Déconnecté" : color 8,255,0,0
end_if
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN

Ceci dit, ce que je viens de te donner, c'est juste un moyen de contourner le problème. Il s'agit bien d'un bug que je devrai corriger.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 13:49

C'est corrigé ! Télécharge la nouvelle version de KGF.dll, et ton programme initial marchera:
Code:
' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp
dim res%, server$, id$, pwd$ , port%
height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9


text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
return

connexion_ftp:
inactive 5 : inactive 6 : inactive 7
clear 9
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = val(text$(4))

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
if res% = 1
res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9))
end_if
active 5 : active 6 : active 7
return

deconnexion_ftp:
clear 9
res% = dll_call0("CloseFTP")
gosub tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecté" : color 8,0,255,0
else
caption 8,"Déconnecté" : color 8,255,0,0
end_if
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5841
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 15:18

Trop rapide ce Klaus Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 16:37

Merci klaus ! Quel rapidité !

J'ai découvert un nouveau bug. En Meme temps je les chercher ;D

Je me connecte au FTP
Une fois connecter, je coupe ma connexion internet de l'ordinateur,

Ensuite je clique sur tester la connexion, et la tout plante.

Le but est de simuler une perte de connexion d'Internet d'un joueur par exemple.

Je pense que le but de tester si on est connecter au FTP devrais mettre non si il n'y a pas internet ?
Ou de cree une fonction pour savoir si on a internet ?

Qu'en pense tu ?

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

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 16:46

En effet, c'est une remarque pertinente. Je vais approfondir la chose...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Sam 6 Juin 2015 - 16:52

Chez moi, ça se comporte "normalement"... Je me connecte, je débranche mon câble réseau, puis je fais "Tester connexion", et voici le résultat:

Ensuite, on peut faire "Déconnexion" normalement. Je rebranche mon câble, puis "Connexion" et tout est normal.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Lun 8 Juin 2015 - 12:04

Salut !

J'ai fait des tests et l'on pas eu le Meme resultat.
Si je me connecte au ftp, et que je suis connecter, si je coupe la connexion internet de mon ordi, et que je clique sur tester la connexion juste apres, j'ai le programme panoramic.exe qui plante. Je pense qu'il dois y avoir un délais avant d'appuyer sur tester la connexion, pour eviter d'avoir une erreur?!

Pour le screen, Serait t'il possible d'éviter d'avoir ce message d'erreur en fenêtre ? On pourra afficher nous Meme le probleme avec le résultat de la variable qui sera res%=0 ou 1 reussi ou erreur ?
Cela permettra de ne pas avoir plein de message d'erreur et d'être au courent de la perte de connexion plus rapidement. (Sauf si cela fonctionne)

Autre chose, la documentation en ligne de KGF.dll contient une mauvaise traduction française pour la fonction UploadFileToFTP, c'est la description de l'ouverture de connexion FTP . Cela n'est pas grave du tout, c'est juste une petite modif de rien du tout ;D

Merci à toi, je continue ma découverte de KGF ce jour, ce ne sera pas mon seul message
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Lun 8 Juin 2015 - 13:05

Télécharge la nouvelle version. Les messages d'erreur du FTP ne s'affichent plus par défaut, mais il y a une nouvelle fonction SetFTPMode qui permet d'instruire KGF.dll de les afficher. La doc est à jour, et la petite anomalie que tu as signalée, est corrigée.

Par rapport au problème de liaison interrompue, j'ai fait une série de tests. Il n'y a aucun délai requis. Dès la coupure, "Tester la connexion" retourne "Déconnecté", mais il y a un petit temps de traitement, pour laisser la tentative de connexion aller à son timeout. Mais pas de plantage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Lun 8 Juin 2015 - 13:24

A tout les coups j'ai cliquer trop vite sur les boutons et j'ai fait planter le programme tout seul. Je n'est pas laisser la dll finir son travail (time out)
Et j'ai eu le message panoramic ne repond pas, j'ai forcer l'arrêt, l'aurais peut etre du attendre^^ je test cela ce soir.


Merci c'est super sympas d'avoir rajouter une option pour le ftp ! Ca fait plaisir, je vais avoir un programme plus propre grâce à ca.

La prochaine étape c'est la conception de plusieurs prototipe sur les semaphore.

J'ai plusieurs idee, comme renomer le fichier avant qu'il sois utiliser par exemple.

Je trouve ça super intéressant. A bientot le premier jeux multijoueur en ligne en panoramic !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Lun 8 Juin 2015 - 13:28

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

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 0:41

Salut klaus ;D

J'ai la V3 de FTP :

Clique ici pour le dossier zip

Ou juste le code :
Code:
' PROGRAMME PRINCIPALE##########################################################
label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp , envoyer_ftp , recevoir_ftp
dim res%, server$, id$, pwd$ , port%
dim org$, dest$ , bin%
dim fic$
caption 0,"Serveur FTP" : height 0,600 : width 0,340*2 : top 0,screen_y/5 : left 0,screen_x/3
dll_on "KGF.dll"

' ##############################################################################
edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10
edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10

edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10
edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10

button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp
button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp : inactive 6
button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp : inactive 7
Alpha 8  : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0

memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9
inactive 9

text 1,"minecraft33.omgserv.com"
text 2,"11469_test"
text 3,"panoramic"

button 10 : caption 10,"Memo vers FTP + Clique forcer sur FTP vers memo" : width 10,300 : top 10,10 : left 10,330 : on_click 10,envoyer_ftp
memo 11 : width 11,300 : height 11,150: top 11,40 : left 11,330 : bar_vertical 11
hint 11,"Message à envoyer"

button 12 : caption 12,"FTP vers memo" : width 12,300 : top 12,250 : left 12,330 : on_click 12,recevoir_ftp
memo 13 : width 13,300 : height 13,150: top 13,280 : left 13,330 : bar_vertical 13
hint 13,"Message recu" : inactive 13

bin%=0

timer 14 : timer_interval 14,200 : on_timer 14,recevoir_ftp : timer_off 14
on_close 0,quitter_programme
end : ' PROGRAMME PRINCIPALE#################################################FIN
' SOUS PROGRAMME PRINCIPALE#####################################################

quitter_programme:
timer_off_all
res% = dll_call1("KillProcessByHandle",handle(0))
return

connexion_ftp:
inactive 5 : inactive 6 : inactive 7
clear 9
if len(text$(1)) > 0 then server$ = text$(1)
if len(text$(2)) > 0 then id$ = text$(2)
if len(text$(3)) > 0 then pwd$ = text$(3)
if len(text$(4)) > 0 then port% = text$(4)

res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$))
res% = dll_call1("OpenFTP",port%)
gosub tester_connexion_ftp
if res% = 1
res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9))
gosub recevoir_ftp
end_if
return

deconnexion_ftp:
res% = dll_call0("CloseFTP")
gosub tester_connexion_ftp
return

tester_connexion_ftp:
res% = dll_call0("IsFTPOnline")
if res% = 1
caption 8,"Connecter" : color 8,0,255,0
inactive 5 : active 6 : active 7
timer_on 14
else
caption 8,"Déconnecter" : color 8,255,0,0
inactive 6 : active 5 : active 7
timer_off 14
clear 9
end_if
return

envoyer_ftp:
if file_exists("data.txt")=1 then file_delete "data.txt"
file_save 11,"data.txt"
fic$ = "data.txt"
res% = dll_call2("UploadFileToFTP",adr(fic$),1)
goto recevoir_ftp
return

recevoir_ftp:
clear 13
if file_exists("datalocal.txt")=1 then file_delete "datalocal.txt"
org$ = "data.txt"
dest$ = "datalocal.txt"
res% = dll_call3("DownloadFileFromFTP",adr(org$),adr(dest$),bin%)
file_load 13,"datalocal.txt"
return

' SOUS PROGRAMME PRINCIPALE##################################################FIN

C'est du direct à 200 MS près pour le moment, c'est presque un premier msn ;D
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 1:04

Je l'ai fait marcher, et c'est nickel ! Je pense que tu es sur la bonne voie.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5841
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 8:14

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

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 20:26

"J'ai mis un texte dans le mémo du haut, et j'ai cliqué sur le bouton juste au-dessus. Et le texte apparaît dans le mémo du bas - je suppose que c'est ce qui revient du FTP. C'est bien joué !"

C'est de klaus le message Question

Je dois vraiment développer mon chat ;D
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 20:36

C'est bien ça ! Au début, j'hésitais un peu. J'avoue que je n'avais pas regardé le code tout de suite - je l'avais simplement exécuté. Et au début, je n'avais pas bien compris l'utilisation des deux mémos et des deux boutons.

Une suggestion:
supprime de deuxième bouton (FTP vers mémo) - je n'en vois pas l'utilité. Et désactive le mémo 13, car il ne sert à rien de saisir du texte dans ce mémo. A part cela, ça marche parfaitement.

Ceci dit, pour un vrai chat, il reste des choses à faire... comme par exemple la prise en compte de deux messages successif du même émetteur. J'ai l'impression que pour le moment, seul le dernier est persistant, en remplaçant le précédent. Je t'avais posté deux messages, en fait...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Mar 9 Juin 2015 - 20:59

En faite j'ai hésiter à le partager, puisque le but été simplement de tester le ftp.

Seul un fichier a le contenus du mémo, c'est pas encore un msn
Mais la je commence la conception de mon programme de chat ce soir

Si tu a des idées, propose^^

-Pseudo et mot de passe (crypter le mot de passe)
-liste des personnes connecter
-message : NOM est en train d'écrire
-mettre un son à chaque message
-plusieurs channel de discutions
-possibilité de beeper une personne (wizz)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Mer 10 Juin 2015 - 0:50

Beau projet, jimx78 ! Et tu vas avoir un sacré problème de conception à résoudre !

En effet, en général, ce genre d'application est géré par un logiciel résidant sur un serveur, avec l'appui d'une base de donnée localisée sur le serveur. Et chaque utilisateur est un "client" du serveur, recevant des pages générées par le serveur (en général du PHP créant localement du HTML chez le client). Et ainsi, les problèmes de gestion des données, de synchronisation etc sont résolues par le logiciel du serveur qui est le "maître" et qui attribue des ressources aux clients.

Or, dans ton cas, il faudra concevoir une application uniquement "client" qui gère l'ensemble des fonctionnalités, avec les verrouillages impératifs sous forme de sémaphores, tout en veillant à l'ensemble des demandes et messages en cours de la part de tous les clients.

C'est un problème de conception au départ, qui doit être bien pensé et rigoureusement défini. Ensuite, c'est de la technique de programmation. Mais comme je l'ai dit, la vrai difficulté est au niveau de la conception, de l'analyse de la résolution des problèmes de simultanéité des transactions, à transformer en opérations sérialisées.

Bonne chance ! Je suivrai cela avec grand intérêt !

EDIT

Quelques réflexions au sujet du chat:
- il serait intéressant que le mémo du bas soit remplacé par un objet list (qui du coup est automatiquement non modifiable)
- chaque "client" aurait son propre fichier sur le FTP, dans lequel il dépose son message
- sur le FTP, il y aurait un fichier "trace" contenant la fusion, chronologique, de tous mes messages. Chaque client ajoute donc son message à la fin de cette liste, en mettant son pseudo, la date et l'heure devant la première ligne du message
- chaque client recharge automatiquement cette liste fusionnée pour l'afficher dans l'objet list remplaçant le mémo du bas

Et encore une autre remarque: ce genre de synchronisations et gestion de données est sur le principe identique à ce que tu devras faire pour un jeu en réseau: sérialiser les actions dans un fichier "trace" et reproduire sur le terrain de jeu de chaque client les actions décrites dans la "trace". Il n'y a pas de différence de principe !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: Tests de KGF.dll   Mer 10 Juin 2015 - 11:23

Bonjour jimx78,

Sacré challenge, car essayer de faire du partage de ressource via ftp...
Je ne vois pas comment tu vas bien pouvoir faire le verrouillage (même avec des sémaphores : normalement, c'est le serveur et uniquement lui, qui doit gérer le partage)

Sinon, j'ai un message d'erreur lors du lancement de ton programme -> ligne 98 : "impossible to load the file"

Lors du 1er lancement, j'ai eu droit à un gros plantage.
Après téléchargement de la derniere dll de Klaus, plus de plantage.
-> Je te conseille de tester la version de KGF en début de ton programme.

De même: essaye de définir un répertoire temporaire de tes fichiers (pour éviter de pourrir le disque dur avec des data(local).txt
Surtout que le répertoire par défaut lors du lancement de Panoramic est assez folklorique. .

Voila, bonne chance dans ton projet !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

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

MessageSujet: Re: Tests de KGF.dll   Mer 10 Juin 2015 - 12:53

Tuto sur les sémaphores

La gestion des sémaphores, c'est autant un problème qu'une solution. La notion de sémaphore décrit une technique de programmation plutôt qu'un élément concret, comme une variable ou un objet.

Ici, le contexte imposé est un site internet accessible par FTP, ce qui se traduit par un répertoire "virtuel" localisé sur un serveur distant. Ce répertoire est accessible simultanément par un nombre non limité de clients. Je dis "simultanément", mais la vraie simultanéité en informatique n'existe pas. Au final, tout revient à une sérialisation via une des multiples techniques de gestion de file d'attente. Ceci est fait par le serveur, et parfaitement transparent pour le client qui a l'impression d'avoir un accès unique, exclusif et immédiat au dossier FTP.

Etant donné qu'on ne peut pas influencer le serveur, tout le problème revient à définir un mécanisme sûr pour réserver tout ou partie du contenu du dossier FTP, pour un client donné. Il ne sert à rien de tester l'existence d'un fichier et d'agir selon son existence ou absence, car entre le test et ne serait-ce que le début de l'action, un autre client peut avoir effectué le même test et croire avoir les mêmes droits d'accès. Il faut trouver un mécanisme qui en une seule action, donne le droit ou non d'effectuer certaines tâches.

Et c'est là que la technique des sémaphores intervient. Dans le cas le plus simple (le plus brutal, le plus bloquant), on va définir un sémaphore qui donne un droit d'accès total et exclusif, à l'ensemble du FTP. Et tant que le sémaphore n'est pas libéré, aucun autre client n'a le droit d'accès.

Je propose d'utiliser la présence d'un fichier spécifique comme sémaphore. Ce fichier, pour les besoins de ce tuto, un fichier nommé FTP_disponible.txt. Peu importe son contenu, il peut même être vide. Seul compte son nom. Donc, au départ, dans le dossier FTP, un fichier nommé FTP_disponible.txt doit exister.

Maintenant, si un client veut utiliser le FTP, il faut qu'il en fasse la demande, et ne peut procéder à ses travaux que si la demande est acceptée. Et il fait la demande en renommant le fichier sémaphore vers un autre nom, par exemple FTP_pris_par_xxx.txt, avec xxx étant le pseudo du client. Ainsi, à chaque instant, on pourra voir qui est en train d'agir sur le FTP. Si le renommage réussit, ceci veut dire que le fichier FTP_disponible.txt existait et que le FTP est maintenant réservé pour ce client. Si le renommage échoue, ceci veut dire que le fichier FTP_disponible.txt n'existait pas, et que donc le FTP est occupé par un autre client. Conséquence: petite attente à programmer, avant de relancer la demande.

Lorsqu'un client a fini son travail avec le FTP, il finit par renommer FTP_pris_par_xxx.txt en FTP_disponible.txt, ce qui immédiatement libère le FTP pour d'autres clients.

Seul problème: si un client ayant réservé le FTP se "plante", le FTP est définitivement bloqué. Il faut donc réaliser un programme spécial "maître" qui peut libérer le FTP en renommant le fichier FTP_pris_par_xxx.txt en FTP_disponible.txt.

Voilà pour le principe. Techniquement simple, cette solution permet d'utiliser un FTP en partage simultané. Bien sûr, on peut étendre cette technique à plusieurs sémaphores:
FTP_disponible.txt - accès total exlusif
FTP_section_1_disponible.txt - accès à un certain sous-ensemble des fichiers
...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
jimx78

avatar

Nombre de messages : 240
Age : 25
Localisation : Yvelines
Date d'inscription : 24/05/2010

MessageSujet: Re: Tests de KGF.dll   Mer 10 Juin 2015 - 14:17

Salut Nardo26 et klaus,

Au plus rapide des deux :
Comment tester la version de KGF dans panoramic, si je sais c'est quel version une condition if version_KGF < 1.0 then message "telecharge la derniere version de KGF"

@ tous:
Comment changer le répertoire courent de panoramic dans son dossier racine ?
Dir_change "" ne fonctionne pas dans mon cas.

@nardo26 ou klaus
Comment ferait tu un répertoire ou fichier temporaire et comment le supprimer apres utilisation, ou redemarage de l'ordi ?

@klaus
Le probleme que tu évoque à propot de si le programme plante et ne libère pas la place, j'ai une solution tres simple, il suffit de tester la connexion de celuis qui à reserver le fichier toutes les 5 secondes par exemple, si celui qui a reserver le fichizr n'a pas de signe de vie depuis > a 5 secondes par exemple, on peux remettre le fichier en disponible.

J'ai fait des tests et pour le moment j'ai pas reussi a faire crache le ftp sans semaphore.
Dans quel cas il y a un refus svp ?
Si un programme enregistre dans un fichizr ftp alors qu'un autre veux le copier en Meme temps par exemple ?
Car la façons qu'est programmer mon ftp, il ne lis jamais le contenue du fichier, il essai juste de le coller en local pour enfin l'ouvrir...
J'ai jamais le cas d'avoir 2 fichier en local qui sont utiliser en ecriture et en lecture par exemple.

Au pire des cas, je peux passer par un logiciel serveur, mais le problème c'est que la transmission des données est plus long.
Panoramic>FTP>Panoramic_serveur>FTP>retour panoramic
C'est plus long que
Panoramic > FTP > retour panoramic

Pour klaus enfin : pour pouvoir différencier plusieurs programme panoramic sur le FTP j'ai pluSieurs solutions :
1- cree un nombre aleatoire, si il existe deja, prend en un autre, ce sera un numéro provisoir / connexion
2- par system de compte : nom d'utilisateur unique enregistrer avec mot de passe
3- avec l'ip de l'ordinateur mais le logiciel ce lancera qu'une fois par ordi et c'est propore comme technique
4- proposez Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Tests de KGF.dll   

Revenir en haut Aller en bas
 
Tests de KGF.dll
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Des tests étranges !
» Composition de trains dans RRTC 7.0 B1 Gold
» Autonomies des piles sur FR-1B
» Mon 62s s'éclate avec la version 3.60
» "Oregon 450T en test gràce à un prêt chez Décathlon" vs Oziexplorer

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: