J'ai un petit probl=E8me.
Je fais une programme pour dialoguer avec un micro par le=20
port serie. J'ai cr=E9=E9 ma propre checksum. elle est un peu=20
bizarre j'aditionne tout les quartets entre eux pour en=20
faire ma checksum.
le resulstat que j'obtient par ce calacul correspond a la=20
valeur en hexa mais sans le &H.
mon probleme est le suivant:
si je mets check =3D "&H" + val("&H".....) il me sort une=20
erreur de type incompatible.
Ps check =3D Hex(val(....)) ne me convient pas puisque avec=20
cette instruction je convertis ce chiffre en hexa.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Zoury
Salut Jingle! :O)
Je fais une programme pour dialoguer avec un micro par le port serie. J'ai créé ma propre checksum. elle est un peu bizarre j'aditionne tout les quartets entre eux pour en faire ma checksum.
J'ai rien compris! :O)) je ne connais rien en audio... mais le problème n'est pas la alors tant pis..
entree,application,charge,sortie,etat,check As string
si tu a déclaré tes variables tel quel, soit : '*** Dim entree, application, charge, sortie, etat, check As string '***
alors toutes les variables sont déclarées As Variant sauf la dernière qui est As String.. tu dois *abosolument* spécifié le type pour chacune d'entre elle. Aussi Check étant une valeur numérique vaudrait mieux la déclarée comme telle : '*** Dim entree As string, application As string, charge As string, sortie As string, etat As string, check As Long '***
si je mets check = "&H" + val("&H".....) il me sort une erreur de type incompatible.
Le symbole de concaténation de chaine utilisé devrait toujours la perluette &. Le plus + fonctionne, mais comme tu l'as remarqué il peut causer des conflits de type car VB ne peut toujousr deviner si tu souhaite convertir le texte en nombre afin de l'addition ou l'inverse.. (et **surtout** si tes variables sont déclarées As Variant comme ça semble être le cas..)
Note l'utilisation de Mid$() au lieu de Mid().. la première renvoit et travaille avec des String alors que la seconde renvoit et travaille avec des Variant ce qui est plus lent..
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Jingle! :O)
Je fais une programme pour dialoguer avec un micro par le
port serie. J'ai créé ma propre checksum. elle est un peu
bizarre j'aditionne tout les quartets entre eux pour en
faire ma checksum.
J'ai rien compris! :O))
je ne connais rien en audio... mais le problème n'est pas la alors tant
pis..
entree,application,charge,sortie,etat,check As string
si tu a déclaré tes variables tel quel, soit :
'***
Dim entree, application, charge, sortie, etat, check As string
'***
alors toutes les variables sont déclarées As Variant sauf la dernière qui
est As String.. tu dois *abosolument* spécifié le type pour chacune d'entre
elle. Aussi Check étant une valeur numérique vaudrait mieux la déclarée
comme telle :
'***
Dim entree As string, application As string, charge As string, sortie As
string, etat As string, check As Long
'***
si je mets check = "&H" + val("&H".....) il me sort une
erreur de type incompatible.
Le symbole de concaténation de chaine utilisé devrait toujours la perluette
&. Le plus + fonctionne, mais comme tu l'as remarqué il peut causer des
conflits de type car VB ne peut toujousr deviner si tu souhaite convertir le
texte en nombre afin de l'addition ou l'inverse.. (et **surtout** si tes
variables sont déclarées As Variant comme ça semble être le cas..)
Note l'utilisation de Mid$() au lieu de Mid().. la première renvoit et
travaille avec des String alors que la seconde renvoit et travaille avec des
Variant ce qui est plus lent..
Je fais une programme pour dialoguer avec un micro par le port serie. J'ai créé ma propre checksum. elle est un peu bizarre j'aditionne tout les quartets entre eux pour en faire ma checksum.
J'ai rien compris! :O)) je ne connais rien en audio... mais le problème n'est pas la alors tant pis..
entree,application,charge,sortie,etat,check As string
si tu a déclaré tes variables tel quel, soit : '*** Dim entree, application, charge, sortie, etat, check As string '***
alors toutes les variables sont déclarées As Variant sauf la dernière qui est As String.. tu dois *abosolument* spécifié le type pour chacune d'entre elle. Aussi Check étant une valeur numérique vaudrait mieux la déclarée comme telle : '*** Dim entree As string, application As string, charge As string, sortie As string, etat As string, check As Long '***
si je mets check = "&H" + val("&H".....) il me sort une erreur de type incompatible.
Le symbole de concaténation de chaine utilisé devrait toujours la perluette &. Le plus + fonctionne, mais comme tu l'as remarqué il peut causer des conflits de type car VB ne peut toujousr deviner si tu souhaite convertir le texte en nombre afin de l'addition ou l'inverse.. (et **surtout** si tes variables sont déclarées As Variant comme ça semble être le cas..)
Note l'utilisation de Mid$() au lieu de Mid().. la première renvoit et travaille avec des String alors que la seconde renvoit et travaille avec des Variant ce qui est plus lent..