DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: qiaoguoqiang
今日帖子: 14
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 zxdcj (月下舞者) ★☆☆☆☆ -
盒子活跃会员
2003/12/2 21:50:22
标题:
如何用move结合指针快速的将非Variant数组的值赋给一个Variant类型的数组? 浏览:1391
加入我的收藏
楼主: type
  Parr=^variant;
var
  arr1:variant;
  arr2:array[1..10000] of string;
  p:parr;
  i:integer;
……
  arr1:=varArrayCreat([1,10000],varOleStr)
  for i:=1 to 10000 do
    arr2[i]:=intToStr(i); 
  ……
  p:=varArrayLock(arr1);
  move(arr2,p^,10000)
  ……
运行后为什么出现数组被锁定无法赋值之类的错误?这个move在这里得怎么用啊?

按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/12/2 22:21:07
1楼: Unit

System

Category

miscellaneous routines

procedure Move(const Source; var Dest; Count: Integer);

Description

Move copies Count bytes from Source to Dest. No range checking is performed. Move compensates for overlaps between the source and destination blocks. 

Whenever possible, use SizeOf to determine the count.

确实很难理解!
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 898898 (898898) ★☆☆☆☆ -
普通会员
2003/12/2 22:51:56
2楼: 你在这一句“move(arr2,p^,10000)”前加“//”再看看就知道;
----------------------------------------------
-
作者:
男 zxdcj (月下舞者) ★☆☆☆☆ -
盒子活跃会员
2003/12/3 9:14:10
3楼: 898898兄,我试过了,请恕我眼拙,我没看出来什么
请直言相解,多谢
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行70.3125毫秒 RSS