Salut j'aimerais convertir chaque elément d'une chaine que j'entre dans un memo en plusieur entier.
Mes entier sont contenu dans une ansiString et ma chaine dans un buffer qui est un tableau de byte.Les donnée convertis doivent etre envoyé à un lecteur de carte via la RS232(TComPort).
A l'exécution j'ai une exception qui est envoyé , c'est une erreur de conversion.
merci d'avance.
La chaine que je veut convertir : 21 78 43 09 65 se sont des val hexa que je veut convertir en entier et les ranger dans un buffer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 byte *RBuffer=new byte[256]; //Buffer d'envoi et de reception byte *SBuffer=new byte[256]; try{ if(ComPort1->Connected){ //Si je suis connecté Ins=Memo1->Text; Len=Ins.Length();//Recuperation de la taiile de la chaine Edit2->Text=Ins; for( unsigned int i=0;i<Len;i++) //Convertion de la chaine et rangement des entiers dans le buffer SBuffer SBuffer[i]=StrToInt(Ins)+' '; ComPort1->Write(SBuffer,Len);//Envoi des données au lecteur Sleep(450); LenBuf=ComPort1->InputCount(); //Récupération du nombres de caractères envoyés par le lecteur Edit2->Text=LenBuf; ComPort1->Read(RBuffer,LenBuf);//Lecture des données transmises par le lecteurr via la RS232 for(unsigned int j=0;j<LenBuf;j++) Rep+=IntToHex(RBuffer[j],2)+' ';//Convertion entier en Hexa Memo2->Text=Rep; //Affichage du résultat envoyé par la carte
Partager