频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

authorware7程序编写基础教程--使用列表

来源: 作者: 出处:巧巧读书 2006-10-13 进入讨论组

3.3  使用列表

列表变量是Authorware中最为灵活的变量,它用于存储一组相关的数据,同时并不要求这些数据都属于同一类型。

利用Authorware提供的列表处理函数,可以很方便地对列表中的数据进行管理。列表可容纳的最大元素数目是32 767。

3.3.1  线性列表

线性列表的所有元素都被包围在一对方括号([ ])中,每个元素是一个单独的值,元素之间由逗号进行分隔。

3.3.1.1  创建

可以通过以下几种方式,创建列表型变量。

1.通过赋值语句

可以使用赋值语句创建一个列表型变量,例如程序语句:

LinearList:= [ ]

产生一个空白的名为LinearList的线性列表,而程序语句:

LinearList:=[ "A", "u", "t", "h", "o", "r"]

产生一个包含有6个字符型元素的线性列表。

2.通过Array()

系统函数Array用于快速创建具有多个相同元素的列表。例如程序语句:

LinearList:=Array(0, 6)

产生一个具有6个元素的线性列表,即[0, 0, 0, 0, 0, 0]。

3.通过List()

系统函数List可以将字符串形式的数值序列转换为列表。例如程序语句:

LinearList:=List("[1,2,3,4,5,6]")

将产生列表[1, 2, 3, 4, 5, 6]。这一函数通常用于将来自于程序外部(例如文本文件、数据库等)的数据转换为列表。

3.3.1.2  访问列表中的元素

线性列表按照从左到右的顺序标识其中每一个元素,因此可以使用下标(元素的存储位置)对线性列表中的数据进行访问,例如程序语句:

LinearList:=[ "A", "u", "t", "h", "o", "r"]

MyVariable:= LinearList[1]

将变量MyVariable赋值为"A",而程序语句:

LinearList[1]:= "a"

将线性列表LinearList的第一个元素赋值为"a",此时变量LinearList的值为[ "a", "u", "t", "h", "o", "r"]。

使用变量和循环语句控制列表的下标,可以实现遍历列表中每个元素的目的。例如以下代码实现对列表中所有元素求和的功能:

TheSum:=0

LinearList:=[1997,1998,1999,2000,2001,2002,2003,2004,2005]

repeat with i:=1 to ListCount(LinearList)

   TheSum:=TheSum+LinearList[i]

end repeat

坐标变量和矩形变量是两类特殊的线性列表,其中包含的坐标也可以通过下标进行访问。以下程序语句创建了一个坐标变量MyPoint和一个矩形变量MyRect:

MyPoint:= Point(100, 120)

MyRect:= Rect(Point(10, 20), Point( 30, 40))

MyPoint的横坐标以MyPoint[1]表示,而MyRect左上角的纵坐标以MyRect[2]表示。

除了使用下标,还可以通过函数ValueAtIndex(anyList, index )对线性列表中的元素进行访问,该函数返回线性列表中指定位置处的元素值,如果参数anyList不是一个列表,或者索引号index小于1或不存在,该函数返回0。例如

LinearList:=[ "A", "u", "t", "h", "o", "r"]

MyVariable:= ValueAtIndex(LinearList, 3 )

获得第3个元素的值"t",而ValueAtIndex(MyRect, 3)返回矩形右下角的横坐标30。

3.3.1.3  增加、删除元素

通过赋值语句或函数AddLinear(linearList, value [, index])可以向线性列表中增加新的元素,例如赋值语句

LinearList:=[ "A", "u", "t", "h", "o", "r"]

LinearList[7]:= "w"

LinearList[8]:= "a"

向线性列表LinearList中增加两个元素,此时变量LinearList的值为["A", "u", "t", "h", "o", "r", "w", "a"]。如果元素下标跳跃式增加,则被忽略的元素自动被赋值为0。例如赋值语句

LinearList[10]:= "e"

使变量LinearList的值变为[ "A", "u", "t", "h", "o", "r", "w", "a", 0, "e"]

函数AddLinear(linearList, value [, index])用于向列表linearList中指定位置处(通过索引参数index指定)插入值为value的元素。函数DeleteAtIndex(anyList, index)用于删除列表中指定位置处的元素。函数FindValue(anyList, value [, index])用于在列表中查找具有指定值的元素。使用以下代码,可以将LinearList中无用的元素0替换为"r":

index:=FindValue(LinearList, 0 )

DeleteAtIndex( LinearList, index)

AddLinear(LinearList, "r", index)

使变量LinearList的值变为["A", "u", "t", "h", "o", "r", "w", "a", "r", "e"]。替换指定元素的功能也可以通过函数调用

SetAtIndex(LinearList, "r", index)

或者赋值语句

    LinearList[index]:= "r"

来实现。

如果省略索引参数,则对于未排序的线性列表,该函数向线性列表的末尾添加新的元素,而对于已排序的线性列表,Authorware将根据value的值,自动将新的元素插入到线性列表中合适的位置,从而保持元素间的排序方式。如果索引跳跃式增加,则被忽略的元素自动被赋值为0。

3.3.1.4  排序

使用函数SortByValue(anyList1 [, anyList2,..., anyList10] [, order])可以按照元素的值对列表进行排序并标上排序标记。设置order为TRUE时按升序排序,否则按照降序排序。如果需要对单个列表进行排序,例如对线性列表LinearList进行排序,可以按照如下方式使用排序函数

LinearList:= ["A", "u", "t", "h", "o", "r", "w", "a", "r", "e"]

SortByValue(LinearList, TRUE)

结果是将LinearList的值转变为["A", "a", "e", "h", "o", "r", "r", "t", "u", "w"]。

该函数可以按照参数中第一个列表的顺序排列多个列表,即将相关的多个列表以第一个列表为基准同时进行排序。例如,现有两个线性列表,分别记录了三种商品的名称和对应的价格:

ListA:=["Ball", "Apple", "Cat"]

ListB:=[30, 10, 20]

使用SortByValue(ListA ,ListB, TRUE)可以按照商品名称进行升序排序,此时LisrtA= ["Apple", "Ball", "Cat"],ListB= [10, 30, 20]。

使用SortByValue(ListB, ListA, FALSE)可以按照商品价格进行降序排序,此时ListB= [30, 20, 10],LisrtA= ["Ball", "Cat", "Apple"]。

从上面的排序结果可知,在以某一个列表为基准进行排序的同时,维持了数据间的相对关系,即同一种商品的名称和价格始终相对应。如果多个列表的元素数目不一致,该函数不进行排序。

列表在排序之后,被Authorware标记为已排序,此后如果对列表进行了改变元素顺序的操作,比如使用函数AddLinear( )向列表中指定位置处插入新的元素,列表就被重新标记为未排序。

3.3.2 浏览地址: http://www.qqread.com/authorware/t222903.html 更多文章 更多内容请看ASP.NET教程FreeBSD使用教程专题,或进入讨论组讨论。

收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章