équivalence AscB(MidB())

j78330 10 Messages postés mardi 17 septembre 2013Date d'inscription 18 juillet 2016 Dernière intervention - 13 juil. 2016 à 11:51 - Dernière réponse : vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention
- 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))
Afficher la suite 

Votre réponse

6 réponses

cgandco 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - Modifié par cgandco le 13/07/2016 à 12:48
0
Utile
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.
Commenter la réponse de cgandco
Whismeril 11544 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 24 mai 2018 Dernière intervention - 13 juil. 2016 à 16:33
0
Utile
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
j78330 10 Messages postés mardi 17 septembre 2013Date d'inscription 18 juillet 2016 Dernière intervention - 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;
}
vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention > j78330 10 Messages postés mardi 17 septembre 2013Date d'inscription 18 juillet 2016 Dernière intervention - 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
Commenter la réponse de Whismeril
vb95 1568 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 21 mai 2018 Dernière intervention - 13 juil. 2016 à 21:13
0
Utile
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
Commenter la réponse de vb95
j78330 10 Messages postés mardi 17 septembre 2013Date d'inscription 18 juillet 2016 Dernière intervention - 18 juil. 2016 à 16:46
0
Utile
merci pour vos réponses
Commenter la réponse de j78330

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.