conversion de long[] en byte[] c urgent svp-PDU - SMS - Reception sms - C - Programmation
Marsh Posté le 02-12-2007 à 22:58:50
J'ai rien compris. Au lieu de nous dire tout ces truc inutiles, dis nous simplement ce que tu as, et ce que tu veux. En 2 ou 3 phrases intelligibles.
Marsh Posté le 03-12-2007 à 07:23:47
Merci pour votre réponse michel95
Ce que je veux tout simplement c de convertir cette chaine de caracteres
"D330BB4E07 3DDB6179" : qui constitut le message en PDU.
A la forme byte===>
BYTE mon_sms_en_PDU[] = {0xD3,0x30,0xBB,0x4E,0x07,0x3D,0xDB,0x61,0x79};
cette chaine je l'ai convertit en un tableau de *long par la fonction atol[]...donc je vous demande la conversion soit de *long vers *byte
ou de *char vers *byte
Et puis, je peux le convertir a l'aide de ma fonction de conversion.
Merci pour toute aide...
Marsh Posté le 03-12-2007 à 10:14:11
Convertion de la chaine de char vers un talbeau de BYTE : tu fais comme tu viens de le faire avec atol, a la différence que :
1) Tu passe par une chaine intermédiaire de deux caractères
2) Tu utilises strtol au lieu de atol, parce atol c'est dangereux (on ne peux pas détecter les erreurs)
Convertir ton tableau de long en tableau de BYTE, c'est casse gueule à cause des problème d'endianness.
Marsh Posté le 02-12-2007 à 11:16:44
Salut a tous,
J'ai vraiment un gros pb de conversions et je ne trouve tjrs ps de sol°
voilà mon probleme :
j'ai un tableau de types long de la forme 3 30 BB 4E 07 3D DB 61 79
==>en realité c un PDU que je veux convertir en caracteres mais j'ai besoin de mettre ce tableau sous forme debytes c a d comme ça:
BYTE sms[] = {0xD3,0x30,0xBB,0x4E,0x07,0x3D,0xDB,0x61,0x79};c la chaine : "Salut Omar"
j'ai realisé une fonction de conversion de *pdu en *char mais il faut qu'on fait entrer dans cette fonction le pdu en type byte et moi j'ai mon pdu en chaine de caractere et je l'ai convertit en long a laide de cette boucle :
for(j=1,i=40;i<l2;j++,i+=2)
{
*s1=0;
*s2=0;
strcpy(mot,"0x" );
*s1=rep[i]; ==>la rep contient tous le pdu y compris le messagela voilà :rep = "07911226020020F211000881898651170000A80AD330BB4E073DDB6179"
*s2=rep[i+1]; voilà le message= ****************
strcat(mot,s1); la rep est une chaine de caractères
strcat(mot,s2);
str[j]=atol(mot);
}
Donc j'ai besoin d'une fonction que j'integre dans cette boucle pour avoir cette forme de bytes==>
BYTE sms[] = {0xD3,0x30,0xBB,0x4E,0x07,0x3D,0xDB,0x61,0x79};c la chaine : "Salut Omar"
Je me suis reté bloqué là et je n'ai pu faire rien.
Please Help...Aidez moi je vous en pries...Merci Bien
Message édité par LeaderShip le 02-12-2007 à 13:24:32