Pk ce code ne marche pas ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Pk ce code ne marche pas ?

Message par gansta93 »

Bonjour,

Faites une lib avec TailBite avec ce code.

Code : Tout sélectionner

ProcedureDLL OpenMailClient(Address$) ; Open the default E-Mail client according address and others specified data.
  
  ProcedureReturn RunProgram("mailto:" + Address$)
  
EndProcedure

ProcedureCDLL OpenMailClient_DEBUG(Address$) ; Open the default E-Mail client according address and others specified data.

If FindString(Address$,"@",1)=1 Or FindString(Address$,"@",1)=0 Or FindString(Address$,"@",1)=Len(Address$) Or CountString(Address$,"@")=0 Or CountString(Address$,"@")>1 Or FindString(Address$,".",FindString(address$,"@",1))=1 Or FindString(Address$,".",FindString(address$,"@",1))=0
  TB_DebugError("The address "+address$+" is not valid.")
EndIf

EndProcedure
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Et ensuite ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

J'ai essayé cela :
OpenMailClient("progi.1984@caramail.com")
ca fonctionne


Masi la seconde fonctionne m'affiche :

OpenMailClient_DEBUG() is not a function,an array or a linked list.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Progi1984 a écrit :Et ensuite ?
Ensuite, utilise cette fonction en y faisant des erreures volontaires ou même utilise-la normalemant, ça plante.
El_Choni
Messages : 46
Inscription : dim. 07/mars/2004 20:19
Localisation : Espagne

Message par El_Choni »

Vrai, c'est un nouvel bug (P*tain, les bugs s'en accumulent ! :? )
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Donc c pas moi, pour une fois... Merci El_Choni pour la réponse. :-)
On dirait que trop de vérification fait planter le programme.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour tout le monde !
Je ne vois pas ou est le bug de PB !

1- Pourquoi ProcedureCDLL ? (d'ou sort le "C" )
2- Ou est définie la fonction TB_DebugError ?

Par contre le code modifié fonctionne trés bien

Code : Tout sélectionner

ProcedureDLL OpenMailClient(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  ProcedureReturn RunProgram("mailto:" + Address$) 
  
EndProcedure 

ProcedureDLL OpenMailClient_DEBUG(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  If FindString(Address$,"@",1)=1 Or FindString(Address$,"@",1)=0 Or FindString(Address$,"@",1)=Len(Address$) Or CountString(Address$,"@")=0 Or CountString(Address$,"@")>1 Or FindString(Address$,".",FindString(Address$,"@",1))=1 Or FindString(Address$,".",FindString(Address$,"@",1))=0 
    Debug("The address "+Address$+" is not valid.") 
  EndIf 
 
EndProcedure 

OpenMailClient_DEBUG("Brossden aol.com")
OpenMailClient("Brossden@aol.com")

Mais le mieux est peut être de réunir les deux :

Code : Tout sélectionner

ProcedureDLL OpenMailClient(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  If FindString(Address$,"@",1)=1 Or FindString(Address$,"@",1)=0 Or FindString(Address$,"@",1)=Len(Address$) Or CountString(Address$,"@")=0 Or CountString(Address$,"@")>1 Or FindString(Address$,".",FindString(Address$,"@",1))=1 Or FindString(Address$,".",FindString(Address$,"@",1))=0 
    MessageRequester("Message d'erreur","The address "+Address$+" is not valid.") 
  Else
    RunProgram("mailto:" + Address$) 
  EndIf 
 
EndProcedure 

OpenMailClient("Brossden aol.com")
OpenMailClient("Brossden@aol.com")
Denis

Bonne Jounée à tous
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

brossden a écrit :Bonjour tout le monde !
Je ne vois pas ou est le bug de PB !

1- Pourquoi ProcedureCDLL ? (d'ou sort le "C" )
2- Ou est définie la fonction TB_DebugError ?

Par contre le code modifié fonctionne trés bien

Code : Tout sélectionner

ProcedureDLL OpenMailClient(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  ProcedureReturn RunProgram("mailto:" + Address$) 
  
EndProcedure 

ProcedureDLL OpenMailClient_DEBUG(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  If FindString(Address$,"@",1)=1 Or FindString(Address$,"@",1)=0 Or FindString(Address$,"@",1)=Len(Address$) Or CountString(Address$,"@")=0 Or CountString(Address$,"@")>1 Or FindString(Address$,".",FindString(Address$,"@",1))=1 Or FindString(Address$,".",FindString(Address$,"@",1))=0 
    Debug("The address "+Address$+" is not valid.") 
  EndIf 
 
EndProcedure 

OpenMailClient_DEBUG("Brossden aol.com")
OpenMailClient("Brossden@aol.com")

Mais le mieux est peut être de réunir les deux :

Code : Tout sélectionner

ProcedureDLL OpenMailClient(Address$) ; Open the default E-Mail client according address and others specified data. 
  
  If FindString(Address$,"@",1)=1 Or FindString(Address$,"@",1)=0 Or FindString(Address$,"@",1)=Len(Address$) Or CountString(Address$,"@")=0 Or CountString(Address$,"@")>1 Or FindString(Address$,".",FindString(Address$,"@",1))=1 Or FindString(Address$,".",FindString(Address$,"@",1))=0 
    MessageRequester("Message d'erreur","The address "+Address$+" is not valid.") 
    ProcedureReturn #False  
  Else
    ProcedureReturn RunProgram("mailto:" + Address$) 
  EndIf 
 
EndProcedure 

If OpenMailClient("Brossden aol.com") = #False
  If OpenMailClient("Brossden@aol.com") =#False
    MessageRequester("Message d'erreur","La requète n'a pu être exécutée") 
  EndIf
  
EndIf
Denis

Bonne Jounée à tous
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Ce code est destiné à être compilé avec TailBite, c'est pour ça que je procède ainsi.
TB_DebugError() est une fonction de TailBite pour faire intervenire le debugger comme les autres librairies.
Le ProcedureCDLL, c'est comme ça que El_Choni a dit de procéder pour faire des fonctions avec vérification du Debugger.
Voilà pourquoi j'ai procéder ainsi, c'est pour ma librairie. Je pense que sinon, El_Choni n'aurait pas répondu. ;-)
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Excuse moi Gansta93 je n'avais pas remarqué que nous étions sur le site de Tailbite !
Je ne vois pas l'interet d'utiliser des librairies qui ont un équivalent en purebasic de base, mais ce doit être l'apanage des "PROS".
Denis

Bonne Jounée à tous
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

brossden a écrit :Excuse moi Gansta93 je n'avais pas remarqué que nous étions sur le site de Tailbite !
Il n'y a pas de forums de TailBite, et c'est pour ça que je l'ai mis dans débutant.
brossden a écrit :Je ne vois pas l'interet d'utiliser des librairies qui ont un équivalent en purebasic de base, mais ce doit être l'apanage des "PROS".
Qui parle de "pro" ?
Et si ma question ne te plaît pas, il te suffit de ne pas y répondre.
Répondre