社区
语言基础/算法/系统设计
帖子详情
如何复制记录数据?
李秋步
2003-03-24 05:55:04
我有一段代码:
type ta=record
a:tstringlist;
b:array of double;
c:integer;
end;
var a1,a2:array of ta;
...
a1:=....
现在要复制a1到a2:采用a2:=copy(a1,0,high(a1));
对a2的操作将会影响到a1,因为a1、a2使用同一地址,
如何解决这个问题呢:对a2操作不影响a1?
...全文
30
13
打赏
收藏
如何复制记录数据?
我有一段代码: type ta=record a:tstringlist; b:array of double; c:integer; end; var a1,a2:array of ta; ... a1:=.... 现在要复制a1到a2:采用a2:=copy(a1,0,high(a1)); 对a2的操作将会影响到a1,因为a1、a2使用同一地址, 如何解决这个问题呢:对a2操作不影响a1?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzzl
2003-04-05
打赏
举报
回复
用循环,一个一个拷
ahjoe
2003-04-05
打赏
举报
回复
很简单的问题
Eastunfail
2003-04-03
打赏
举报
回复
使用API: CopyMemory
李秋步
2003-03-31
打赏
举报
回复
也许没有人再关注这个问题吧。
bluedelphi
2003-03-31
打赏
举报
回复
使用Copy 就可以的!会重新分配内存的!
a2 := a1 两个是一个地址的!
自己可以试试看!
李秋步
2003-03-28
打赏
举报
回复
时间不等人呀。我用最原始的办法,一个一个的复制,即数组内部也一个一个
的复制,好像是:数组用copy,tstringlist用addstrings。
LouisJJW
2003-03-28
打赏
举报
回复
主要是考虑到数组的元素是一个记录体,而记录体内又又动态数组,
动态数组是一个指针,而这个指针指向的又是指针,甚至这个指针还可能
在指向另外一个指针,因此,想完全作到那复制,恐怕很难。
前几天我也遇到过这种情况,没有想到什么好办法,也是像你这样,
数组内部的元素一个一个复制。
LouisJJW
2003-03-26
打赏
举报
回复
关注,
帮你up一下,看看谁有好办法!
LouisJJW
2003-03-26
打赏
举报
回复
昨天回去试了一下,这个问题不太好办,
但要解决应该也可以办到。就是因为记录体内的数据又是一个指针。
是这样的,动态数组本身是一个指针,其大小是动态分配的,
你这个动态数组,是指向一个记录体,而你这个记录体内部,
有两个数据域a 和 b又是一个指针,那么,在复制时,复制
的是这两个指针所在的内存,而这个指针所指向的内存里面的内容
并没有复制,所以,你那样复制a1到a2后,其中的a,b两个域并没有复制,
就出现你说的a2会影响a1,可以定义两个变量,分别是a,b类型的,
a,可以用TStingList.Assign复制对象,对于b,要重新分配内存和原
数组一样大小的内存,应该可以实现。
LouisJJW
2003-03-25
打赏
举报
回复
copy 应该没有问题的,
是不是因为 a: tstringlist; ?
这是一个对象,如果向你所说,我猜可能是 copy 没有重新创建一个 TStringList,
而是将指针指向了它,等下我回去试试看。
citytramper
2003-03-24
打赏
举报
回复
copy没问题的
snake_eye
2003-03-24
打赏
举报
回复
Assign
fancier
2003-03-24
打赏
举报
回复
a2:= a1;//这时引用,对a2的操作将会影响到a1。
//a2:=copy(a1,0,high(a1));
这是数组的完全拷贝啊!应该不会出现对a2的操作将会影响到a1吧?
关注!
MySQL DML 语言(插入、更新与删除
数据
)
# 高阶 DML 操作 将查询结果插入到新表(相当于表
复制
功能) 根据另一张表的条件,更改本表
记录
根据另一张表的条件,删除本表
记录
------------------------------------------------------------- ...
delete from xx_table(删除全表
数据
)对应的binlog是怎么
记录
的?
面试官:delete from xx_table(删除全表
数据
)对应的binlog是怎么
记录
的? binlog事件的类型有哪些? binlog事件
记录
的格式类型有哪些?
分布式
数据
复制
技术
数据
复制
技术原理及应用同步
复制
技术原理及应用异步
复制
技术原理及应用半同步
复制
技术原理及应用三种
数据
复制
技术对比知识扩展:在半同步
复制
技术中,对于未回复
数据
更新结果的节点,如何解决
数据
不一致或冲突呢?...
什么是主
数据
?有什么作用?
什么是主
数据
?有什么作用?在说主
数据
之前,我们先来看一个场景再来看一个行业趋势到底什么是主
数据
?为什么说主
数据
管理是一切工作的起点?为了应对这些问题,我们需要引进主
数据
管理(MDM)从基础层面来说,主...
Laravel根据Model
数据
复制
一条
记录
最近需要写个脚本补历史
数据
,要根据某条
记录
,
复制
一条
记录
,修改一个字段后再插入表中,原来想的比较简单,代码这样写: $oldModel = Model::query()->where('id', 123)->first(); $newModel = clone $old...
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章