-
Chr du VB en C (ou c++)
Bonjour,
Ne connaissant pas le VB je cherche à traduire cette ligne en C ou C++ mais malheuresement mes recherches n'ont rien donner.
Code:
st = st & Chr("&H" & line.Substring(u, 2))
J'ai trouver plein de choses mais aucune ne marche, d'aprés ce que j'ai compris ce le convertit le hexadécimal en ascii et je n'ai rien vu de tel en C.
Ce qui est bizzare c'est que si je fais
Code:
printf("%c\n", 0x05);
Cela me fais un signe ( un genre de tréfle) alors que le Chr du VB mais fais un |.
Code:
MsgBox(Chr("&H05"))
Si quelqu'un veux bien m'aider. :P
Petite présision : Je récupére dans un char quelque choses comme "05" et il me faudrais le convertir en | , 73 => s ....
-
En Visual Basic, l'opérateur & sert à concaténer des chaînes de caractères et la fonction Chr sert à convertir un code de caractère (un entier) en caractère (sachant qu'un caractère en VB est tout simplement une chaîne de caractères composé d'un seul caractère). Dans ton exemple, une chaîne est donnée en argument de Chr mais elle sera automatiquement convertie en entier.
En langage C, il n'y a pas d'opérateur de concaténation. On a par contre la fonction strcat qui fait bien le boulot. Pour convertir un code de caractère en caractère, il n'y a rien à faire : le code du caractère représente déjà le caractère lui-même.
Enfin, le caractère de code 0x05 (ou &H05 en écriture Basic) ne correspond ni à une treffle ni au caractère | mais à un caractère de contrôle. Ce n'est donc pas un caractère imprimable. Du coup, lorsqu'on tente de l'afficher, le logiciel d'affichage le converti en treffle, en point, en barre verticale, ou en n'importe quel autre caractère censé suggérer une erreur d'affichage.