结构体的序列和还原(使用Move方法)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体的序列和还原(使用Move方法)相关的知识,希望对你有一定的参考价值。

// 定义结构体

type
TmyRec= record
name:string[10];
password:string[10];
end;

function RawToBytes(const AValue; const ASize: Integer): TBytes;
begin
SetLength(Result, ASize);
if ASize > 0 then begin
Move(AValue, Result[0], ASize);
end;
end;

procedure BytesToRaw(const AValue: TBytes; var VBuffer; const ASize: Integer);
begin
Assert(Length(AValue) >= ASize);
Move(AValue[0], VBuffer, ASize);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
rec: TmyRec;
rec2: TmyRec;
db:TBytes;
begin
rec.name :=\'cxg\';
rec.password:=\'929\';
// 序列结构体为bytes
db := RawToBytes(rec, SizeOf(rec));
// bytes还原结构体
BytesToRaw(db, rec2, SizeOf(rec2));
Caption := rec2.name+\'\\\'+rec2.password;
end;

http://www.cnblogs.com/hnxxcxg/p/4253919.html

以上是关于结构体的序列和还原(使用Move方法)的主要内容,如果未能解决你的问题,请参考以下文章

golang中级进阶(二):结构体

Go基础4

Go基础4

Go基础4

链表使用类和结构体的区别?

数组与结构体的区别