如何把一个结构在内存中的内容放到string里(10分)

  • 主题发起人 主题发起人 jlugjb
  • 开始时间 开始时间
J

jlugjb

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把一个结构在内存中的内容放到string里
 
串行化/反串行化
 
inside vcl中有
 
什么叫没人?
不是告诉你用Move了吗??????
 
一点没有回答问题的精神
 
用Move,或者用TStream.Write(Record, SizeOf(Record));TStream.Read(PChar(Str), TStream.Size);
 
觉的用copymemory比较好,不过不知道正规的写法,大家回答的都不满意
copymemory(@buffer,@p,sizeof(p));
 
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
s: string;
public
{ Public declarations }
end;
///////////////////////////
type
TMyRecord = record
I: Integer;
end;
var
r: TMyRecord;
begin
r.I := 3;
SetLength(S, SizeOf(TMyRecord));
Move(r, s[1], SizeOf(TMyRecord));
ShowMessage(S);
end;
 
Type
TA = record
.....
end;
var
A:TA;
S:String;
//保存结构到字符串
SetLenth(S,SizeOf(TA))
CopyMemory(PChar(S),@A,SizeOf(TA));
//回复字符串到结构
CopyMemory(@A, PChar(S), SizeOf(TA));
 
最好不放string中,放PCHAR中才是正解
 
后退
顶部