amaurysme62
Messages postés9Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention 4 juin 2008
-
2 juin 2008 à 11:31
amaurysme62
Messages postés9Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention 4 juin 2008
-
2 juin 2008 à 13:57
Bonjour, voila j'ai un petit problème avec cet algo pourtant simple :)
il sert a rechercher une date en cherchant dans une chaine les caractères de séparation : /
J'avoue que je débute en VB et que je suis plus habitué au C mais je dois faire ça par la force des choses :)
Le problème est que i semble revenir systématiquement a sa valeur initiale à chaque appel de la fonction ( elle est appelée o moins 10 à 15 fois )
Je suis sur que cela doit être un détail mais à force d'être dessus, je ne vois plus très bien ce qui ne va pas.
Merci de votre aide :)
Public Function date_detect(ByVal trame As String, ByVal i As Integer)
While i < Len(trame)
If Mid(trame, i, 1) "/" And Mid(trame, i + 3, 1) "/" Then '
Return i
Else
i += 1
End If
amaurysme62
Messages postés9Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention 4 juin 2008 2 juin 2008 à 12:22
ok, je vais assayer le byref mais je l'ai déja fait tout a l'heure (peut-etre mal fait )
Sinon, cette fonction recherche une trame qui commence par une date dans un fichier.
Et je ne comprends pas pourquoi le byref puisque lors de l'appel, je spécifie une valeur à i
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 juin 2008 à 12:39
date_detect va te renvoyer le bon I, puisque c'est une fonction (non typée....)
seulement tu ne récupères pas le retour, tu passes juste I en paramètre
et comme I est byval, si I=3 et I= 6 dans la fonction, après retour :
fonction retourne 6
I retourne toujours 3
ps : ton code est classé en VB6, c'est du DotNet
ps : mid n'existe pas en dotnet, il faut utiliser substring....
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
amaurysme62
Messages postés9Date d'inscriptionlundi 2 juin 2008StatutMembreDernière intervention 4 juin 2008 2 juin 2008 à 12:51
Je crois avoir compris mais encore un doute.
la fonction retourne 6 alors si je fais dans mon appel
i=date_detect(trame,i)
puisque la fonction retourne 6, i devrait valoir 6 non ?
Désolé, c'est pas mon habitude de faire le boulet, mais je comprends vrément moyennement :/