第十三章:容器的初始值及动态管理数组容器
如果容器内从来没有被写入过数据,那么此时容器中的内容是什么呢?我们来做一个实验:
请打开上一章所完成的程序,将_按钮1_被单击子程序中的内容全部删除,然后进行以下输入操作:
一、顺序加入以下容器:
1、 名为字节容器的字节型容器;
2、 名为短整数容器的短整数型容器;
3、 名为整数容器的整数型容器;
4、 名为长整数容器的长整数型容器;
5、 名为小数容器的小数型容器;
6、 名为双精度小数容器的双精度小数型容器;
7、 名为逻辑容器的逻辑型容器;
8、 名为日期时间容器的日期时间型容器;
9、 名为文本容器的文本型容器;
10、名为字节集容器的字节集型容器;
二、输入以下程序语句:
hb1.gdxh(zjrq,dzsrq,zsrq,czsrq,xsrq,sjdxsrq,ljrq,rqsjrq,qwbcd(wbrq),qzjjcd(zjjrq))
输入完毕后子程序中的语句为:
画板1.滚动写行 (字节容器, 短整数容器, 整数容器, 长整数容器, 小数容器, 双精度小数容器, 逻辑容器, 日期时间容器, 取文本长度 (文本容器), 取字节集长度 (字节集容器))
运行程序并单击按钮,显示出来的各行为:
显示结果行 所显示的数据
0-〉字节容器的内容
0-〉短整数容器的内容
0-〉整数容器的内容
0-〉长整数容器的内容
0-〉小数容器的内容
0-〉双精度小数容器的内容
假-〉逻辑容器的内容
1899年12月30日-〉日期时间容器的内容
0-〉文本容器中文本的长度
0-〉字节集容器中字节的数目
由上面的显示结果我们可以知道:所有数值型容器的初始值都为 0 ,逻辑型容器的初始值为假,日期时间型容器的初始值为1899年12月30日,文本型容器的初始值为长度为 0 的空文本,字节集容器的初始值为空字节集。
如果容器为数组,其每个数组成员的初始值都与单个容器相同。
请在此处下载上面所编写的程序。
------------------------------
下面我们继续讲述如何动态管理数组容器,它是易语言的高级特性之一。
请查看以下命令的详细解释:
名称简要解释
复制数组将数组数据复制到数组容器,数组容器内的原有内容将被全部覆盖。
加入成员将数据加入到数组容器的尾部
插入成员将数据插入到数组容器的指定位置
删除成员删除数组容器中的指定成员
清除数组删除数组容器中的所有成员
为了理解这些命令,请将上面所编写程序中的_按钮1_被单击子程序的内容全部删除,然后进行以下输入操作:
一、分别加入名为容器数组1、容器数组2的整数型容器,将其数组属性都设置为 0 ,表示为具有 0 个成员的容器数组;
二、输入以下语句行:
hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2))
jrcy(rqsz1,200)
crcy(rqsz1,1,100)
jrcy(rqsz2,50)
jrcy(rqsz2,rqsz1)
hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2),rqsz1[1],rqsz1[2],rqsz2[1],rqsz2[2],rqsz2[3])
sccy(rqsz1,1)
qcsz(rqsz2)
hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2),rqsz1[1])
fzsz(rqsz2,rqsz1)
hb1.gdxh(qszcys(rqsz2),rqsz2[1])
输入完毕后,子程序中的语句为:
画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2))
加入成员 (容器数组1, 200)
插入成员 (容器数组1, 1, 100)
加入成员 (容器数组2, 50)
加入成员 (容器数组2, 容器数组1)
画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2), 容器数组1 [1], 容器数组1 [2], 容器数组2 [1], 容器数组2 [2], 容器数组2 [3])
删除成员 (容器数组1, 1, )
清除数组 (容器数组2)
画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2), 容器数组1 [1])
复制数组 (容器数组2, 容器数组1)
画板1.滚动写行 (取数组成员数 (容器数组2), 容器数组2 [1])
运行程序并单击按钮,显示出来的各行及其对应的意义为:
显示行所显示的数据
0容器数组1内的初始成员数目
0容器数组2内的初始成员数目
2由于加入和插入了一个成员,容器数组1内的成员数增为 2。
3 由于加入了一个成员,然后又加入了容器数组1内的现行所有成员,容器数组2内的成员数增为 3。
100“插入成员 (容器数组1, 1, 100)”语句插入到容器数组1首部的成员数据。
200“加入成员 (容器数组1, 200)”语句加入到容器数组1内的成员数据。
50“加入成员 (容器数组2, 50)”语句加入到容器数组2内的成员数据。
100“加入成员 (容器数组2, 容器数组1)”加入到容器数组2内的成员数据。
200
1“删除成员 (容器数组1, 1, )”语句执行后容器数组1内的成员数目
0“ 清除数组 (容器数组2)”语句执行后容器数组2内的成员数目
200 由于容器数组1的第一个成员被“删除成员 (容器数组1, 1, )”语句删除,后面的成员被顺序前移,200 为此时的容器数组1 [1]成员内容。
1由于“复制数组 (容器数组2, 容器数组1)”语句将容器数组1内的所有数据复制到了容器数组2,所以此时容器数组2内的成员数目与容器数组1相同。
200由于“复制数组 (容器数组2, 容器数组1)”语句将容器数组1内的所有数据复制到了容器数组2,所以此时容器数组2 [1]成员的内容与容器数组1 [1]相同。
由此可见,使用这些命令可以相当灵活地对容器数组进行操作。