PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 janv. 2009 à 17:33
[../auteur/TOOSDU87/737476.aspx toosdu87]
-> OK mais quel est le but?
un tableau de byte d'une "bonjour" donnerait un tableau de 0 à 6, contenant les codes ascii de chaque lettre
ici tu as un tableau de décimal (nombres à virgules donc) et tu voudrais tout mettre dans un tableau de byte, donc en fait juste un tableau d'entier positifs de 0 à 255 ?
peux-tu expliquer le but stp?
si c'est juste ce que je viens de dire (étrange...), çà donnerait quelque chose dans ce goût là :
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim i As Integer
' "Tableauemission contient des valeurs décimales."
Dim Tableauemission(0 To 9) As Double
For i = 0 To 9
Tableauemission(i) = i * 2.05
Next i
'tableau de byte
Dim Octet_hexa() As Byte
'remplissage et cast
ReDim Octet_hexa(Tableauemission.GetUpperBound(0))
For i = 0 To 9
Octet_hexa(i) = Convert.ToByte(Tableauemission(i))
Next i
0. '0' devient '0'
1. '2,05' devient '2'
2. '4,1' devient '4'
3. '6,15' devient '6'
4. '8,2' devient '8'
5. '10,25' devient '10'
6. '12,3' devient '12'
7. '14,35' devient '14'
8. '16,4' devient '16'
9. '18,45' devient '18'
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
"&h" + Mid(Parameter_number, 1, 2))
''''D3Je travail uniquement avec des entiers.
Mon tableau permet de créer une trame que je vais envoyer par RS232 a un microcontroleur.
C'est pourquoi il faut que je convertisse en Octet.
En tout cas grâce à toi et aux autres que je remercie, le code marche très bien de cette façon, c'est exactement ce que je voulais. MERCI
Dim Octet_hexa
As
Byte()
'remplissage et cast
ReDim Octet_hexa(Longueur_Trame + 1)
For i = 0
To Longueur_Trame + 1Octet_hexa(i) = Convert.ToByte(Tableau_emission(i))
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 janv. 2009 à 16:03
Salut
Juste des idées (parce que .NET me file des boutons) :
- Ton tableau de Byte (Octet_hexa) n'est pas dimensionné, il devrait avoir un (9) quelque part, non ?
- Avant l'accolade, ne faudrait-il pas un mot clé comme Array ?
- Tableau_emission est-il bien un tableau valide ?
Un tableau de quoi ? S'il est déjà un tableau de Bytes, CByte et Byte ne vont pas ensemble
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
toosdu87
Messages postés100Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 1 mars 2010 8 janv. 2009 à 16:19
Merci Jack
Ton tableau de Byte (Octet_hexa) n'est pas dimensionné, il devrait avoir un (9) quelque part, non ?
J'obtiens l'erreur "Les tailles de tableau ne peuvent figurer dans les spécificateurs de type"
Le Array devant n'a pas l'aire de fonctionner.
Tableauemission contient des valeurs décimales.
A titre d'info :
Dim Octet_hexa
As
Byte() = {
CByte(Tableau_emission(0)),
CByte(Tableau_emission(1)),
CByte(Tableau_emission(2)), _
CByte
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 9 janv. 2009 à 10:31
salut,
l'HEXA n'est qu'une représentation d'un LONG, tu as dis que c'était un tableau de decimal et pour finir tu stockes dans un tableau de string en faisant VAL qu'il ne faudrait plus utiliser non plus (vb6)...
pareil pour cette ligne
For
i = 0
To
Longueur_Trame + 1
tu avais écrit
Longueur_Trame =
"5"
, çà veut dire que tu additionnes des string et des integer, le reste de ton code doit contenir pas mal d'erreurs
Convert.ToByte(...
, => oui c'est le convert de dotnet
bon courage
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp