cs_supergl
Messages postés13Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention24 mai 2007
-
15 mai 2007 à 14:49
cs_supergl
Messages postés13Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention24 mai 2007
-
15 mai 2007 à 17:56
Bonjour a tous,
Voici le morceau de fonction qui me pose problème :
Function crypter(acrypt As String, code As String) As String
alpha = "azertyuiop^$qsdfghjklmùµwxcvbn,;:= -_AZERTYUIOP¨*QSDFGHJKLM%£WXCVBN?./+[]´`~\<>²³&é'()§è!çà0123456789" & Chr(34)
crypt = acrypt
For i = 1 To Len(acrypt)
For a = 1 To Len(alpha) If Mid$(alpha, a, 1) Mid$(acrypt, i, 1) Then lenbrt a
dfg = i - ((i \ Len(code)) * Len(code)) If dfg 0 Then dfg Len(code) If Mid$(alpha, a, 1) Mid$(code, dfg, 1) Then lenbrc a
Next a
lenbr = (((lenbrt + lenbrc) - 1) - (((lenbrt + lenbrc) - 1) \ Len(alpha)) * Len(alpha)) If lenbr 0 Then lenbr Len(alpha)
Mid$(crypt, i, 1) = Mid$(alpha, lenbr, 1)
Next i
crypter = crypt
End Function
des que j'entre un crarctere non prévu dans alpha, j'ai un plantage sans message donc une fauuse chaine cryptée
Je voudrais ajouetre au débiut de la fonction un teste de controle de ce type
For y = 1 To Len(code)
v = Mid$(code, y, 1)
c = InStr(0, alpha, v) If c 0 Then crypter "erreur"
If c = 0 Then Return
Next y
avant la boucle for de la fonction crypter
j'ai un message d'erreur a l'exécution que je ne comprends pas erreur d'exécution '5' erreur d'appel a procédure .
Cela fait une dizaine d'année que je n'ai pas fait un programme en VB
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 mai 2007 à 15:01
Re,
ATTENTION que cela ne soit pas mal interprété Return existe en VB6 mais à utiliser comme le dit MSDN:
[javascript:alink_4.Click() procédure].
Syntaxe
GoSubline
...
line
...
Return
L'
<object id= "alink_5" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_5.Click() argument] line peut être n'importe
quelle
<object id ="alink_6" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_6.Click() étiquette de ligne] ou
<object id="alink_7" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_7.Click() numéro de ligne].
Remarques
GoSub et Return peuvent apparaître n'importe où dans une
procédure, mais l'instruction GoSub et l'instruction Return correspondante doivent appartenir dans la même procédure. Une sous-routine peut
contenir plusieurs instructions Return. Toutefois, la première
instruction Return rencontrée provoque la poursuite du déroulement du
programme à partir de l'
<object id ="alink_8" type= "application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_8.Click() instruction] qui suit immédiatement
l'instruction GoSub la plus récente.
Note Il n'est pas possible d'accéder à des
procédures Sub ou de les quitter au moyen de GoSub...Return.
Conseil Il est parfois préférable de créer des procédures séparées que vous pourrez appeler
plutôt que d'utiliser GoSub...Return
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 mai 2007 à 15:08
Dans ce cas essaie
(sans grande conviction mais bon)
For y = 1 To Len(code)
v = Mid$(code, y, 1)
c = InStr(0, alpha, v)
If c = 0 Then
crypter = "erreur"
Exit Function
End If
Next y, ----
[code.aspx?ID=41455 By Renfield]
cs_supergl
Messages postés13Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention24 mai 2007 15 mai 2007 à 15:06
Merci de votre aide,
je veux en réalité passer la chaine de caractere code a un controle qui verifie si tous les caracteres de code sont bien présent sdans la chaine alpha,
Si il ne sont pas présents je veux retourner une valeur dans crypter qui m'indique l'erreur.
Donc me faire sortir de la fonction crypter et pévenir l'utilisateur de l'erreur
cs_supergl
Messages postés13Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention24 mai 2007 15 mai 2007 à 16:55
Bonsoir,
j'ai fait un copier coller de ton code source
mais dans ton cas comme dans le mien
il sort en run un message d'errur sur la ligne
c = InStr(0, alpha, v)