équivalence AscB(MidB())

Messages postés
10
Date d'inscription
mardi 17 septembre 2013
Dernière intervention
18 juillet 2016
- 13 juil. 2016 à 11:51 - Dernière réponse :
Messages postés
1702
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 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

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Dernière intervention
22 juin 2017
- Modifié par cgandco le 13/07/2016 à 12:48
0
Merci
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
Messages postés
12255
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
16 novembre 2018
- 13 juil. 2016 à 16:33
0
Merci
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
Messages postés
10
Date d'inscription
mardi 17 septembre 2013
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;
}
Messages postés
1702
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 novembre 2018
>
Messages postés
10
Date d'inscription
mardi 17 septembre 2013
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
Commenter la réponse de Whismeril
Messages postés
1702
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 13 juil. 2016 à 21:13
0
Merci
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
Messages postés
10
Date d'inscription
mardi 17 septembre 2013
Dernière intervention
18 juillet 2016
- 18 juil. 2016 à 16:46
0
Merci
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.