TByteDynArray TIdBytes TMemoryStream struct 相互转换

 TIdBytes to String

String  str=BytesToString( AValue: TIdBytes);

TMemoryStream to  TIdBytes

// 方法一   RawToBytes

// TByteDynArray *barry = new TByteDynArray[MyStream->Size];
// barry[0] = RawToBytes(MyStream->Memory, MyStream->Size);
// IdUDPServer1->SendBuffer(edtInput->Text, 137, barry[0]);


// // 方法二    ReadBuffer
// TByteDynArray barry2;
// barry2.set_length(MyStream->Size);
// MyStream->Position = 0;
// MyStream->ReadBuffer(barry2, MyStream->Size);
// IdUDPServer1->SendBuffer(edtInput->Text, 137, barry2);


// // 方法三  ReadBuffer
// TByteDynArray *barry3 = new TByteDynArray;
// barry3->set_length(MyStream->Size);
// MyStream->Position = 0;
// MyStream->ReadBuffer(*barry3, MyStream->Size);
// IdUDPServer1->SendBuffer(edtInput->Text, 137, *barry3);


// 方法4     ReadTIdBytesFromStream
TByteDynArray barry4;
barry4.set_length(MyStream->Size);
MyStream->Position = 0;
ReadTIdBytesFromStream(MyStream,barry4,MyStream->Size);

IdUDPServer1->SendBuffer(edtInput->Text, 137, barry4);



TIdBytes  to TMemoryStream


// WriteTIdBytesToStream(MyStream, AData, ilen);
MyStream->WriteData(AData,ilen);


struct to TIdBytes  


 typedef struct person
{
int id;
AnsiString name;
}tsperson;

TByteDynArray arr;
tsperson ps;

tsperson ps2;

   ps.id = 1;
   ps.name = "kitty";

 arr = RawToBytes(&ps,sizeof(tsperson));

//Move(&ps,&arr[0],sizeof(tsperson));
//MoveMemory(&arr[0],&ps,sizeof(tsperson));
//memcpy(&arr[0],&ps,sizeof(tsperson));

四种方法都可以


TIdBytes   to struct 

 

   BytesToRaw(arr,&ps2,arr.Length);
//   Move(&arr[0],&ps2,arr.Length);
MoveMemory(&ps2,&arr[0],sizeof(tsperson));
//memcpy(&ps2,&arr[0],arr.Length);

四种方法都可以



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值