Function renvoie un string, mais ajoute un espace...

Résolu
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007 - 9 août 2006 à 09:19
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 9 août 2006 à 10:54
Salut à tous!

J'ai un problème avec une fonction qui me retourne un string (mais ne
le repasse pas). Pour un projet en Access 2003, je dois décoder le
contenu d'une mémoire. Ce contenu est dans une table dont les colonnes
s'appellent "Byte0", "Byte1", "Byte2", ..., "ByteE", "ByteF" J'ai un
Recordset "rsData" sur cette table.


J'ai fait une procédure qui clacule et renvoie le nom du Byte suivant
(exemple si c'est "Byte8", elle va retourner "Byte9"). Le hic, c'est
que la fonction ajoute un espace à la fin (j'obtiens "Byte9 ") et ça
marche pas pour la suite. Je vous mets un bout de mon code ci-dessous:

'Initialize Byte variable to point first byte in each new EEPROM page read
If bytRecord = 1 Then

   strLSB = "ByteF"
End If
'Get and convert Date/Time of flight LEG beginning

strLSB = GetNextByte(strLSB)

strMSB = GetNextByte(strLSB)

strTimeStart = GetTimeRecord(rsData(strLSB), rsData(strMSB)) 'i.e. "10:25:15"

strDateStart = GetDateRecord(rsData(strLSB), rsData(strMSB)) 'i.e. "07.08.2006"
'Get Flight Phase number

strLSB = GetNextByte(strMSB)

bytFlightPhase = rsData(strLSB) 'Range is 1-10


Je sais que je pourrais faire un trim() de ma variable, mais mon code
est long et j'appelle cette fonction à beaucoup d'endroits. Je me
demandais s'il y a pas une option quelque part pour que la procédure
n'ajoute pas d'espace? Surtout que dans la procédure, j'ai pas
d'espaces, c'est vraiment au moment où je reviens dans la procédure qui
appelle que l'espace apparaît!


Un si long post pour un si petit problème me direz-vous :-) Ben au moins c'est clair!

Merci d'avance pour vos réponses et bonne continuation!

Sifflet

10 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2006 à 09:32
Et les variables strLSB et strMSB seraient pas déclarées de longueur fixe à 6 caractères par hasard

Sevyc64  (alias Casy)<hr align="center" size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 09:23
Salut,
Peu etre pourrais tu mettre le code de GetNextByte (si il n'est pas top secret).
As tu essayer de mettre le Trim juste avant le retour de la chaine de caractere dans GetNextByte du style

GetNextByte = Trim(VariableTampon)

@+, Julien
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
9 août 2006 à 09:27
Effectivement! Mais bon, ya vraiment rien d'exeptionnel :-)

En fait c'est Access XP que j'utilise, mais ça ne change rien à mon avis...

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'' This procedure get the next byte number to use in next step for translation

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Function GetNextByte(strActualByte As String) As String

   Dim strTest As String

   strTest = Mid(strActualByte, 5, 1) ' Get only byte number (0-F)

  

   If (IsNumeric(strTest) And strTest <> "9") Then   'if Byte 0-8..

      GetNextByte = "Byte" & (CInt(strTest) + 1)   'add 1 to byte number

   Else

      Select CaseTrim(strActualByte) 'J'ai ajouté Trim ici, mais ça sert un peu à rien...

         Case "Byte9"

            GetNextByte = "ByteA"

         Case "ByteA"

            GetNextByte = "ByteB"

         Case "ByteB"

            GetNextByte = "ByteC"

         Case "ByteC"

            GetNextByte = "ByteD"

         Case "ByteD"

            GetNextByte = "ByteE"
         Case "ByteE"

            GetNextByte = "ByteF"
         Case "ByteF"

            GetNextByte = "Byte0"
         Case Else

            GetNextByte = "Error"
      End Select

   End If

End Function
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
9 août 2006 à 09:30
En fait, j'avais pas mis la procédre, parce qu'elle fonctionne super bien! et n'ajoute pas d'espace!


C'est seulement quand je reçoit la valeur dans la procédure appelante !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 09:35
Re
>826618 sifflet_ : Effectivement vu comme çà!
> =333139 casy: Bien vu.

@+, Julien
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
9 août 2006 à 09:43
Pu***n!

Bien vu Casy! Effectivement, c'est le cas, j'ai enlevé la longueur fixe
et ça marche! J'ai voulu vite mettre les longueurs fixe hier soir avant
de partir et voilà, j'ai perdu 1H ce matin à comprendre pourquoi ça
marchait plus...


Merci de votre aide expérimentée et d'une grande rapidité!

Bonne journée!
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
9 août 2006 à 09:44
Je t'offrirais bien le café, mais je pense que t'es un peu loin :-)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2006 à 09:56
Tout dépend dans quel coin tu es, mais je dois etre un epu loin oui effectivement.

Sevyc64  (alias Casy)<hr align="center" size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
sifflet_ Messages postés 70 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 2 mai 2007
9 août 2006 à 10:40
Je bosse à Fribourg, en Suisse
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2006 à 10:54
C'est loin tout ça

Moi je suis dans le sud-ouest de la france, 1h de la mer, 1h de la montagne, le paradis sur terre.

Sevyc64  (alias Casy)<hr align="center" size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous