如何将 记录类型 和 Byte数组类型 进行相互转换?(40分)

  • 主题发起人 主题发起人 summax
  • 开始时间 开始时间
S

summax

Unregistered / Unconfirmed
GUEST, unregistred user!
比如: Info = record
inf: integer;
Par: string;
end;

INN = array[0..1024] of byte

i: Info
b: INN

i = b ?? 如何实现!!!
b = i ?? 如何实现!!!!

没分了..不好意思!!!
 
1.
move(b,i,1025);
2.
move(i,b,4+length(i.par));
 
我由于你的结构内包含了一个字符串,所以我想你是需要保存字符串的内容吧。如果是这样的话,你需要象下面这样
1.i := b//error
i.inf := PInteger(@b[0])^;
这里你需要知道保存在数组中字符串的长度,我假设你第一个参数就是记了这个值
SetLength(i.Par,i.inf);
CopyMemory(@i.par[1],@b[4],i.inf);
反过来在保存时,相反做,首先保存长度
PInteger(@b[0])^ := i.inf;
CopyMemory(@b[4],@i.par[1],i.inf);

注意,你要确保你的数组足够放下你的字符串哦。
 
應該不行吧,Info 有兩個元素,inn沒有...
 
后退
顶部