问个小问题,给点小分(100)

banxian 2002-10-18 04:48:38
讨论讨论大家都是如何对数组赋大量值的....
俺经常就是一行赋一个值.
例如
c1:array[0..1024] of byte;
c1[0]:=$00;
c2[1]:=$CB;
.
.
c3[120]:=$AA;
呵呵,是不是很蠢....
...全文
21 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boilingsea 2002-10-18
  • 打赏
  • 举报
回复
可以从文件读取
banxian 2002-10-18
  • 打赏
  • 举报
回复
我拿WinHex拷贝出
$00,$CB,$19,$0A,$00,$81,$49,$D1,$31,$C1,$31,$36,$30,$30,$00,$CE
$19,$14,$00,$87,$41,$00,$DA,$19,$1E,$00,$97,$28,$32,$34,$39,$35
$C9,$49,$29,$2C,$41,$00,$DC,$19,$28,$00,$82,$00,$DE,$19,$3C,$00
$80,$00.....
这样的代码(用UltraEdit简单替换了一下),这下不用慢慢地输入了(其实我也就一行一行写过一次).
我本来是希望有
c1 db $00,$CB,$19,$0A,$00,$81,$49,$D1,$31,$C1,$31,$36,$30,$30,$00,$CE
$19,$14,$00,$87,$41,$00,$DA,$19,$1E,$00,$97,$28,$32,$34,$39,$35
$C9,$49,$29,$2C,$41,$00,$DC,$19,$28,$00,$82,$00,$DE,$19,$3C,$00
$80,$00
这一类的定义,看来delphi跟ASM差距还是较大的
banxian 2002-10-18
  • 打赏
  • 举报
回复
嗯,其实还可以SetLenth调整array长度么.
靠,方法真多,待会儿就结帖算了
banxian 2002-10-18
  • 打赏
  • 举报
回复
字符串就有点不好玩了,我里面含有很多0,用在字符串,就会结束了这个字符串,而且如果使用大部份字符无法显示只能使用char()+char()什么的,岂不是也很慢(敲键盘).
windofsun 2002-10-18
  • 打赏
  • 举报
回复
如果你的数据是有规律的,可以用循环赋值。如果没有规律,可以先把数据写成一个字符串,然后用循环解析后给数组赋值。
banxian 2002-10-18
  • 打赏
  • 举报
回复
嗯,老哥,我本来准备来嘲你(我只赋前121个)的后来一想,
豁然开朗了,
一是可以去TResourceStream来从资源获取,然后使用stream的write,拿C1当缓冲,长度选121就Okay了,
还有可以定义一个
a:array[0..121] of integer=($00,$CB,...,$AA);
然后从缓冲区间复制....
呵呵,不过我想delphi提供的会有省略号,待我试试看,C就有的.
zdcnow 2002-10-18
  • 打赏
  • 举报
回复
搞错,是
a:array[0..3] of integer=(0,1,2,3);
zdcnow 2002-10-18
  • 打赏
  • 举报
回复
a:array[0..4] of integer=(0,1,2,3);
robinhunter 2002-10-18
  • 打赏
  • 举报
回复
如果你的数据开始就是一块一块的,你可以用copymemory

5,402

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧