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