-
IntToStr
将整数转换为AnsiString字符串,函数原型如下:
AnsiString __fastcall IntToStr(int Value); -
IntToHex
将整数转换为十六进制字符串,函数原型如下:
AnsiString __fastcall IntToHex(int Value, int Digits);
eg:
AnsiString s0,s1;
char *Buf= new char[socket_size];
Socket->ReceiveBuf(Buf,socket_size); //接收的是char型
for(int i=0; i<socket_size; i++)
{
s1=IntToHex(Buf[i],2);
s1=s1.SubString(s1.Length()-1,2);
s0=s0+s1;
} -
StrToInt
将AnsiString字符串转换为整数值,如果不能进行转换,则产生EConvertError异常,
函数原型如下:
int __fastcall StrToInt(const AnsiString S);
4.StrToInt(“0x”+t)
将AnsiString字符串转换为16进制整数值,
eg:
for(int i=0;i<10;i++)
{
t = s.SubString(i*2+1,2);
Buffer[i] = StrToInt(“0x”+t); //转换成16进制的整数
Buffer[10]=Buffer[10]^StrToInt(“0x”+t);
}
ClientSocket1->Socket->SendBuf(Buffer,11);
或者: char Buffer[4];
Buffer[3] =0x00;
char EndPtr;
for(int i=0;i<3;i++)
{
t = s.SubString(i2+1,2);
Buffer[i] = strtol(t.c_str(), &EndPtr, 16); //字符串转成字节
Buffer[3]=Buffer[3]^StrToInt(“0x”+t);
}
ClientSocket1->Socket->SendBuf(Buffer,4);
}
5.16进制转换成10进制的整数!!!需要自己写一个函数
unsigned int TDataModule1::HexToInt(AnsiString Str)
{
unsigned int nTemp=0;
for(int i = 1; i<=Str.Length(); i++)
{
int nDecNum;
switch(Str[i])
{
case ‘a’:
case ‘A’: nDecNum = 10; break;
case ‘b’:
case ‘B’: nDecNum = 11; break;
case ‘c’:
case ‘C’: nDecNum = 12; break;
case ‘d’:
case ‘D’: nDecNum = 13; break;
case ‘e’:
case ‘E’: nDecNum = 14; break;
case ‘f’:
case ‘F’: nDecNum = 15; break;
case ‘0’:
case ‘1’:
case ‘2’:
case ‘3’:
case ‘4’:
case ‘5’:
case ‘6’:
case ‘7’:
case ‘8’:
case ‘9’: nDecNum = Str[i] - ‘0’; break;
default: return 0;
}
nTemp += nDecNum * pow(16,Str.Length()-i);
}
return nTemp;
}
//-------------------------------------------------------------------------------------------
6.String类型转换成char类型:
eg:
String S=“abc”;
int Length=S. Length();
char *Buffer= new char[Length];
Buffer=S.c_str();
结果:
Buffer[0]=‘a’ , Buffer[1]=‘b’, Buffer[2]=‘c’
eg:
AnsiString Str=Edit1->Text;
char *MyStr = new char[Str.Length()+1];
strcpy(MyStr,Str.c_str());
NowStream->WriteBuffer(MyStr,strlen(MyStr));
7.char类型转换成String类型:
if (AData.Length > 0) {
AnsiString ls_str = “”;
int li_len = AData.Length;
for (int i = 0; i < li_len; i++)
ls_str = ls_str + (char)AData[i];