Bonjour et bon dimanche à tous.
J'aimerais savoir quel était l'équivalent avec c++ builder6 de la fonction Chr() issue du VB ?
Merci d'avance
Cordialement.
Version imprimable
Bonjour et bon dimanche à tous.
J'aimerais savoir quel était l'équivalent avec c++ builder6 de la fonction Chr() issue du VB ?
Merci d'avance
Cordialement.
Je ne sais pas pourquoi tu veut une tels fonction, mais si tu met une valeur entière (0 à 255) dans une variable de type char, cette variable t'affichera simplement le caractère correspondant (mais pas l'entier)
En faite ce que je veux faire c'est que je recupère un serie d'octet à partir de ma RS 232, ses octets que j'ai récupérer doivent afficher un caractère ASCII
Exemple :
4142434445 deviennent ABCDE quand je veux les afficher dans un label ou Memo ect .. et s'est ici que sa bloque je n'arrive pas à afficher ses caractères.
A+
Si tu reçoit des octets de ta liaison RS232, tu peut donc les mettre dans un tableau de char, et ces octets seront donc directement convertie en la lettre correspondante
Salut
Exemple :
A chaque caractère je dois ajouter '\x' pour que se soit convertis par mon Memo mais pour le faire j'ai essayer plusieur chose mais sa tourne pas.Code:
1
2
3
4
5
6
7
8
9
10
11 char buf[255]; ComPort1->Read(buf,16); //Ici je reçois 414243444546 tab[0]=buf[0]; //'41'; tab[1]=buf[1];//'42'; tab[2]=buf[2];//'43'; tab[3]=buf[3];//'44'; tab[4]=buf[4];//'45'; tab[5]=buf[5];//'46'; Memo1->Lines->Add(AnsiString(tab)); //Je doit afficher normalement ABCDEF
Salut,
je n'ai pas BCB sous la main la, mais je testerais ce soir et je te dirais quoi
Salut !
En fait tu pourrais utiliser un AnsiString, directement :
Il est possible aussi de faire une truc un peu plus.... tordu mais.... très efficace :Code:
1
2
3
4
5
6
7
8
9
10 AnsiString N = ""; //vide au départ d'une ligne char c; for(int j = 0; j < 6; j++) { c = Buf[j]; //On réalise la concaténation N = N + (AnsiString)c; } Memo1->Lines->Add(N);
A plus !Code:
1
2
3
4
5
6 Byte c = Buf[6]; //pour sauvegarder ce caractère du buffer Buf[6] = 0; //On crée une chaîne AZT char *pString = (char*)&Buf[0]; Memo1->Lines->Add(pString); Buf[6] = c; // on restaure le caractère du buffer qui a servit comme NUL pour l'AZT