équivalence AscB(MidB())

j78330 Messages postés 10 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 18 juillet 2016 - 13 juil. 2016 à 11:51
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 18 juil. 2016 à 18:12
Bonjour,
Quest-ce qui équivaut a AscB et MidB en C # s'il vous plait ?
Ligne en vb6 : X(j) = AscB(MidB(Buffer, j + 1, 1))

4 réponses

cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
Modifié par cgandco le 13/07/2016 à 12:48
Bonjour,

Je ne connais pas AscB et MidB mais a mon avis :

c[j] = (byte)txt[j];


Attention les indices en c# sont commencent à 0.

donc pour ton premier caractère

c[0] = (byte)txt[0];



Bonne journée
Faites simple, aussi simple que possible, mais pas simpliste.
                                              A. Einstein.
0
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
13 juil. 2016 à 16:33
Bonjour, comme je te l'ai déjà dit poster un code Vb pour poser une question c# n'est pas forcément la meilleure solution.

Le mieux serait de nous dire ce qu'il y a dans ton buffer (des bytes j'imagine), et ce que tu veux obtenir
0
j78330 Messages postés 10 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 18 juillet 2016
18 juil. 2016 à 16:46
Bonjour il ya sa dans mon Buffer

Fonction = 3;
AdresseModBus = 161;
AdataH = 0x5B;
AdataL = 0x00;
LdataH = 0;
LdataL = 5;
......

if (Fonction == 3)
{
Buffer = Convert.ToByte(2 * LdataL + 5);
}

else
{
Buffer = 8;
}
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > j78330 Messages postés 10 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 18 juillet 2016
18 juil. 2016 à 18:12
bonjour
Tel qu'indiqué dans ton code
Buffer = Convert.ToByte(2 * LdataL + 5);
buffer est un Byte et non un tableau de Bytes

On ne voit donc pas l'utilité de la ligne en VB 6 au début du message
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
13 juil. 2016 à 21:13
bonjour
vu l'utilisation en VB 6 de la fonction Mid quelque chose me dit que buffer contient une chaine de caractères !
Asc donne le code Ascii sur 8 bits du premier caractère d"une chaine .
Mid donne dans une chaine de caractères la sous-chaine à partir d'une position dans la chaine et pour un certain nombre de caractères ( si chaine = "Bonjour" Mid("Bonjour",4,4) donne "jour" ). En VB 6 les chaines commencent à la position 1 et non 0

Si chaine = "Bonjour" en VB6
X(j) = AscB(MidB(Buffer, j + 1, 1))
donne le Code Ascii de B soit 66 pour j = 0

En c# on crée directement un tableau de bytes en passant la chaine en paramètres
byte[] asciiBytes = Encoding.ASCII.GetBytes(chaine);


Ne pas oublier le
using System.Text
en importation au tout début de la Form ou de la classe selon
0
j78330 Messages postés 10 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 18 juillet 2016
18 juil. 2016 à 16:46
merci pour vos réponses
0
Rejoignez-nous