procedure TForm1.Button1Click(Sender: TObject);
type a = record
info : string;
end;
pa = ^a;
var Buffer :string ;
atmp,btmp:pa;
begin
new(atmp);
new(btmp);
atmp^.info := 'thank you';
buffer:=atmp^.info;
dispose(atmp);
btmp^.info :=buffer;
showmessage(btmp^.info) ;
dispose(btmp);
end;
type a = record
info : string;
end;
pa = ^a;
var Buffer :string ;
atmp,btmp:pa;
begin
new(atmp);
new(btmp);
atmp^.info := 'thank you';
buffer:=atmp^.info;
dispose(atmp);
btmp^.info :=buffer;
showmessage(btmp^.info) ;
dispose(btmp);
end;
type //定义连表
PStMyHz= ^StMyHz;
StMyHz = Packed Record
Word : String[2];
Code : String[10];
Next : PStMyHz;
end;procedure Create;
var
I : Longint;
Temp,Str : AnsiString;
PNew,Tail : PStMyHz;
begin
Temp := HZCODETEXT; I := 1;
Head := nil; Tail := Nil;
while Temp[I]<>'\' do
begin
New(PNew);
PNew^.Word := Temp[I]+Temp[I+1]; //取出汉字
I := I+2; Str := '';
while (Temp[I] in ['0'..'9']) do //取出汉字对应编码
begin
Str := Str+Temp[I];
I := I+1;
end;
PNew^.Code := Str; //新节点赋值
PNew^.Next := nil; //新节点指针
if Head=nil then
begin
Head := PNew;
Tail := PNew;
end else begin //新节点加入链表
Tail^.Next := PNew; //Tail始终指向尾节点
Tail := PNew;
end;
end;
end;end.
type
a = record
info : string;
end; pa = ^a;
var
Buffer: array[0..1023] of char;
atmp, btmp: pa;
Vi: Integer;
begin
atmp := New(pa);
btmp := New(pa);
atmp^.info := 'thank you'; Vi := StrLen(PChar(atmp^.info));
StrCopy(Buffer, PChar(atmp^.info));
Dispose(atmp); SetLength(btmp^.info, Vi);
StrCopy(PChar(btmp^.info), Buffer); Button1.Caption := btmp^.info;
Dispose(btmp);
end;
等问题解决后,也给分。谢谢参与。
a = record
info : string;
end;中的 info 只是一个指针,不是记录本体,类似于这些要单独处理。如果是a = record
info : integer;
info1: array [0..127] o char;
end;什么的,就可以直接用 Move 进行内存传输了,因为记录结构本身已经确定
info: string;
abc: Integer;
end;pa = ^a;......
......atmp := New(pa); // 这时只是分配了 info 指针,也就是四个字节;但是 abc 这个整形变量分配好了四个字节;因为编译器不知道 string 有多长。
type a = record
info : char;
data : Integer;
end;type pa = ^a;procedure TForm1.Button1Click(Sender: TObject);
var tmpa,tmpb :pa;
buf : array[0..1023] of char;
begin
tmpa := New(pa);
tmpb := New(pa);
tmpa^.info := 'a';
tmpa^.data := 9;
FillChar(buf,sizeOf(buf),0);
Move(tmpa,buf,sizeof(a));
dispose(tmpa);
Move(buf,tmpb,sizeof(a));
ShowMessage(tmpb^.info);
dispose(tmpb);
end;
结果不对啊,我用MoveMemory也不行。我的目的就是Record 记录进行缓存。
dispose(tmpa);
Move(buf,tmpb^,sizeof(a));
ShowMessage(tmpb^.info);
dispose(tmpb);
集本人多年开发积累和精心收藏所铸就而成的软件及系统原代码光盘,价格便宜,只需100元(RMB)(限量发行100套,先购先得),有意者请速发邮件至:[email protected]
本人承诺尽快回复汇款地址及系统的详细介绍。
光盘内容:
[MP3播放程序源代码]
[ERP系统源代码系列]:包含的模块有系统管理、基本资料管理、生产管理、采购管理、仓库管理、质量管理、设备管理、人力资源管理等模块。
[GIS地理信息管理系统源代码]
[IDE开发平台界面(类似delphi)源代码]
[报表设计系统源代码]
[伯乐股市分析系统源代码(C++)][通用的SQL查询语言生成器]
[超级程序管理器源代码]
[超级电子小说阅读器源代码]
[豪杰超级解霸2.0程序源代码(C++)]
[机关单位通用工资管理系统(VB)源代码]
[家庭财账管理软件源代码]
[进销存管理(VB)源代码]
[进销存系统源代码本系统]
[挖地雷游戏的源程序(VB)]
[网络RPG游戏系统源代码(Java/asp)]
[网页在线编辑系统源代码(Java/asp)]
[文件传输系统1源程序]
[文件传输系统2源程序]
[邮件处理系统源程序]
[语音识别系统源程序]
[远程监控系统源程序]
[文档资料管理系统源程序]
[动态网站系统原码]:网上商店前后台管理软件、网站分类源程序、广告服务器源程序、网上超市源程序、投票(调查)源程序、投稿软件源程序、二手市场源程序、流量统计源程序、图片上传源程序、新闻服务器源程序、论坛源程序、BBS源程序、隐蔽留言簿源程序、公开留言板源程序、聊天室源程序、社区源程序
[媒体播放器源代码]
[扑克牌游戏源代码]
[棋类游戏系统源代码]
[软件注册系统源代码]
[跳舞机的源程序(VB)]
[图片浏览器系统(C++)源代码]