InstallShield内部库函数全集十六-列表处理函数

本文主要是介绍InstallShield内部库函数全集十六-列表处理函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

16  列表处理函数
    列表被使用来保存相关信息组。在InstallShield中,有两类列表:字符串列表和数字列表。提供两组函数来处理列表:每个处理一种类型。以”Item”结尾的列表函数处理数字列表。以”String”结尾的列表函数处理字符串列表。你不能将数字列表函数使用到字符串列表,反之亦然。下面是在一个安装脚本中处理列表的函数。
ListAddItem
添加一项到一个列表。
ListAddString
添加一个字符串到一个列表。
ListCount
返回在一个指定列表中字符串或数值型元素的数目。
ListCreate
创建一个新的字符串或数字列表。
ListCurrentItem
返回一个列表中的当前项目。
ListCurrentString
返回一个列表中的当前字符串。
ListDeleteItem
删除一个列表中当前项目。
ListDeleteString
删除一个列表中的当前字符串。
ListDestroy
消除一个列表。
ListFindItem
使指定项目成为一个数字列表中的当前项目。
ListFindString
使指定项目成为一个字符串列表中的当前项目。
ListGetFirstItem
从一个数字列表中检索第一个元素。
ListGetFirstString
从一个字符串列表中检索第一个元素。
ListGetNextItem
从一个数字列表中检索当前元素后的元素。
ListGetNextString
从一个字符串列表中检索当前元素后的元素。
ListReadFromFile
读一个文本文件到一个列表。
ListSetCurrentItem
设置一个数字列表中的当前元素。
ListSetCurrentString
设置一个字符串列表中的当前元素。
ListSetIndex
使用一个索引来设置一个列表的当前元素。
ListWriteToFile
写一个字符串列表到一个文件。
16.1  ListAddItem
语法:ListAddItem (listID, nItem, nPlacementFlag);
说明:ListAddItem函数将一个数值型元素添加到一个数字列表中当前元素的前面或后面。为遍历一个列表,首先调用ListGetFirstItem得到列表的第一个元素;然后重复调用ListGetNextItem直到你到达列表尾。为使列表中的一个特定元素成为当前元素,调用ListSetIndex。
参数:
listID
指定一个数字列表的名称。由listID标识的列表必须早已由ListCreate函数初始化。
nItem
指定要添加到列表中的数值型元素。
nPlacementFlag
指定在哪儿放置和当前元素相关的nItem。新元素可以在当前元素之前或之后。在该参数位置传递下列预定义常量之一:
AFTER:将新元素添加到列表中当前元素之后。
BEFORE:将新元素添加到列表中当前元素之前。
返回值:
0:ListAddItem成功添加元素到一个数字列表。
< 0:ListAddItem未能添加元素到一个数字列表。
注解:
·ListAddItem仅工作于数字列表。
16.2  ListAddString
语法:ListAddString (listID, szString, nPlacementFlag);
说明:ListAddString函数添加一个字符串到一个字符串列表中当前元素之前或之后。为遍历一个列表,首先调用ListGetFirstItem得到列表的第一个元素;然后重复调用ListGetNextItem直到你到达列表尾。为使列表中的一个具体元素成为当前元素,调用ListSetIndex。
参数:
listID
指定一个字符串列表的名称。由listID标识的列表必须早已由ListCreate函数初始化。
szString
指定添加到列表中的字符串。
nPlacementFlag
指定在哪儿放置和当前元素相关的szString。新字符串可以在当前元素之前或之后。在该参数位置传递下列预定义常量之一:
AFTER:将新字符串添加到列表中当前元素之后。
BEFORE:将新字符串添加到列表中当前元素之前。
返回值:
0:ListAddString成功添加字符串到列表。
< 0:ListAddString未能添加字符串到列表。
注解:
·ListAddString仅工作于字符串列表。
16.3  ListCount
语法:ListCount (listID);
说明:ListCount函数返回一个列表中的元素数目。
参数:
listID
指定一个字符串或数字列表的名称。
返回值:
>= 0:列表中的项目数。
< 0:ListCount未能确定列表中的元素数。
注解:
·该函数工作于字符串和数字列表。
16.4  ListCreate
语法:ListCreate (nListType);
说明:ListCreate函数创建一个空的字符串或数字列表。记住一个列表不能包括两个类型的元素。InstallShield提供不同的函数组来工作于字符列表和数字列表。你必须不能将一个数字列表的ID用于字符串列表函数,反之亦然。以”Item”结尾的列表函数处理数字列表。以”String”结尾的列表函数处理字符串列表。
    当你不再需要列表时,你可以用ListDestroy函数来消除列表。每个列表都有一个指针来标识一个元素为列表的当前元素。不同的列表函数重新定位列表的当前元素。调用任何列表函数时,你必须给该函数传递列表的一个有效ID。确定该函数创建列表成功。否则,所有列表函数因无效列表而失败。
参数:
nListType
指定要创建的列表类型。在该参数位置传递下列预定义常量之一:
NUMBERLIST:指定一个数字列表。
STRINGLIST:指定一个字符串列表。
返回值;
ListID:新创建的空列表的ID。无论何时你要在其它InstallShield列表函数中使用该列表,你都必须使用该ID。你必须检测该变量并确认函数没有返回LIST_NULL。
LIST_NULL (-1):表明InstallShield未能创建一个列表。那是一个严重内存问题的结果,这是很少见的一种情况。有这样的内存问题时你要继续安装可能会很困难。
注解:
·在你传递一个有效列表ID给任何需要一个列表的函数时,你必须使用ListCreat创建该列表。你可以在一个脚本中创建任意个列表。一个列表可能包含任意个元素。唯一的限制是有效空闲内存的大小。
16.5  ListCurrentItem
语法:ListCurrentItem (listID, nvItem);
说明:ListCurrentItem函数从listID指定的数字列表中检索当前元素。
参数:
listID
指定一个数字列表。
nvItem
返回列表中当前元素的值。
返回值;
0:表明函数成功在一个数字列表中检索当前元素。
< 0:表明函数未能在一个数字列表中检索当前元素。
END_OF_LIST (1):表明列表为空因而没有一个当前元素。
注解:
·该函数仅工作于数字列表。
·你也可以使用ListGetFirstItem 和ListGetNextItem函数来遍历列表并使任何元素为当前元素。
16.6  ListCurrentString
语法:ListCurrentString (listID, svString);
说明:ListCurrentString函数从listID指定的字符串列表中检索当前元素。
参数:
listID
指定一个字符串列表。
svString
返回列表当前元素的值。
返回值:
0:表明函数成功在一个字符串列表中检索当前元素。
< 0:表明函数未能在一个字符串列表中检索当前元素。
END_OF_LIST (1):表明列表为空因而没有一个当前元素。
注解:
·该函数仅工作于字符串列表。
·你也可以使用ListGetFirstString 和ListGetNextString函数来遍历列表并使任何元素为当前元素。
16.7  ListDeleteItem
语法:ListDeleteItem (listID);
说明:ListDeleteItem函数从你在listID指定的数字列表中删除当前元素。
参数:
listID
指定从中删除当前元素的数字列表。
返回值:
0:表明函数从一个数字列表中成功删除当前元素。
< 0:表明函数未能从一个数字列表中删除当前元素。
END_OF_LIST (1):表明列表为空因而没有一个当前元素。
注解:
请参阅ListCurrentItem的注解。
16.8  ListDeleteString
语法:ListDeleteString (listID);
说明:ListDeleteString函数从你在listID指定的字符串列表中删除当前元素。
参数:
listID
指定从中删除当前元素的字符串列表。
返回值:
0:表明函数从一个字符串列表中成功删除当前元素。
< 0:表明函数未能从一个字符串列表中删除当前元素。
END_OF_LIST (1):表明列表为空因而没有一个当前元素。
注解:
请参阅ListCurrentString的注解。
16.9  ListDestroy
语法:ListDestroy (listID);
说明:ListDestroy函数消除一个列表的内容及列表本身。使用该函数来删除一个listID指定的字符串或数字列表。
参数:
listID
指定要消除的字符串或数字列表。
返回值:
0:表明函数成功消除列表,把它从内存中删除。
< 0:表明函数未能消除列表。
注解:
·该函数既可作用于字符串列表,也可作用于数字列表。一旦一消除了一个列表,不要再在任何列表函数中使用该listID。
·当你不再需要时或在安装脚本结尾时,消除你创建的所有列表。当你消除一个列表,你就释放了和该列表联系的所有内存。
16.10  ListFindItem
语法:ListFindItem (listID, nItem);
说明:ListFindItem函数在一个数字列表中查找一个特定元素,从当前元素开始并从该点继续往下。如果你想从列表头开始查找,使用ListGetFirstItem函数。当ListFindItem找到元素时,它就成为列表的当前元素。
参数:
listID
指定要查找的数字列表。
nItem
指定要在列表中查找的项目。
返回值:
0:表明函数成功找到所要求的元素。
< 0:表明一个错误阻止函数查找指定列表。如,如果由listID指定的列表不存在则会发生错误。
END_OF_LIST (1):表明InstallShield查找到了列表结尾但没有找到所要求的元素。
注解:
·该函数仅工作于数字列表。
16.11  ListFindString
语法:ListFindString (listID, szString);
说明:ListFindString函数在一个字符串列表中查找一个特定元素,从当前元素开始并从该点继续往下。如果你想从列表头开始查找,使用ListGetFirstString函数。当ListFindString找到元素时,它就成为列表的当前元素。
    该函数对字符串比较时区分大小写。
参数:
listID
指定要查找的字符串列表。
szString
指定要在列表中查找的字符串。当查找该字符串时,InstallShield执行一个区分大小写的比较。
返回值:
0:表明函数成功找到所要求的元素。
< 0:表明一个错误阻止函数查找指定列表。如,如果由listID指定的列表不存在则会发生错误。
END_OF_LIST (1):表明InstallShield查找到了列表结尾但没有找到所要求的元素。
注解:
·该函数仅工作于字符串列表。
16.12  ListGetFirstItem
语法:ListGetFirstItem (listID, nvItem);
说明:ListGetFirstItem函数从一个数字列表中检索第一个元素。该第一个项目成为该列表中的当前元素。
参数:
listID
指定要检索其第一个元素的数字列表。
nvItem
返回数字列表的第一个元素。
返回值:
0:表明函数成功检索了一个数字列表的第一个元素。
-1:表明发生了一个错误阻止函数检索一个数字列表中的第一个元素。
END_OF_LIST (1):表明列表为空。
注解:
·该函数仅工作于数字列表。
16.13  ListGetFirstString
语法:ListGetFirstString (listID, svString);
说明:ListGetFirstString函数从一个字符串列表中检索第一个元素。该第一个项目成为该列表中的当前元素。
参数:
listID
指定要检索其第一个元素的字符串列表。
svString
返回字符串列表的第一个元素。
返回值:
0:表明函数成功检索了一个字符串列表的第一个元素。
-1:表明发生了一个错误阻止函数检索一个字符串列表中的第一个元素。
END_OF_LIST (1):表明列表为空。
注解:
·该函数仅工作于字符串列表。
16.14  ListGetNextItem
语法:ListGetNextItem (listID, nvItem);
说明:ListGetNextItem函数检索一个数字列表中当前元素之后的项目。被检索的项目成为该列表中的当前元素。
参数:
listID
指定要从中检索下一个元素的数字列表。
nvItem
返回在数字列表中紧随当前元素的项目。该项目成为列表中的当前元素。
返回值:
0:表明函数成功检索一个数字列表中当前元素之后的元素。
-1:表明发生一个错误阻止函数检索一个数字列表中的指定元素。
END_OF_LIST (1):表明当前项目是列表中的最后一个元素。
注解:
·该函数仅工作于数字列表。
16.15  ListGetNextString
语法:ListGetNextString (listID, svString);
说明:ListGetNextString函数检索一个字符串列表中当前元素之后的项目。被检索的项目成为该列表中的当前元素。
参数:
listID
指定要从中检索下一个元素的字符串列表。
svString
返回在数字列表中紧随当前元素的项目。该项目成为列表中的当前元素。
返回值:
0:表明函数成功检索一个字符串列表中当前元素之后的元素。
-1:表明发生一个错误阻止函数检索一个字符串列表中的指定元素。
END_OF_LIST (1):表明当前项目是列表中的最后一个元素。
注解:
·该函数仅工作于字符串列表。
16.16  ListReadFromFile
语法:ListReadFromFile (listID, szFile);
说明:ListReadFromFile函数读一个文本文件到一个列表。一旦你把一个文本文件装入一个列表,你就可以在安装中把它用到不同的函数,如在安装结尾显示一个README文件或用ListWriteToFile写一个字符串列表到磁盘。
    该函数让你可以很方便地把整个文件装入到一个列表,而不是一次创建一个列表项。
参数:
listID
返回一个从szFile指定的文件中读入行的列表。由listID 标识的列表必须已经由ListCreat初始化。
szFile
指定将要被读入列表的文件的全限定名。
返回值:
0:表明函数成功将一个文件中的文本行读入到一个列表。
< 0:表明函数未能将一个文件中的文本行读入到一个列表。
注解:
·该函数检测每个字符串结尾的换行符并使用这些字符作为列表中每个元素的分界符。
·该函数仅作用于字符串列表和文本文件。
16.17  ListSetCurrentItem
语法:ListSetCurrentItem (listID, nItem);
说明:ListSetCurrentItem函数将nItem的值赋给一个数字列表中的当前元素。
参数:
listID
指定其当前元素要被更新的数字列表的名称。由listID标识的列表必须早以由ListCreat初始化。
nItem
指定将要置换当前元素的数值型值。
返回值:
0:表明函数成功更新数字列表中的当前元素。
< 0:表明函数未能更新数字列表中的当前元素。
END_OF_LIST (1):表明列表为空。
注解:
·该函数仅工作于数字列表。
16.18  ListSetCurrentString
语法:ListSetCurrentString (listID, szString);
说明:ListSetCurrentString函数将szString的值赋给一个字符串列表中的当前元素。
参数:
listID
指定其当前元素要被更新的字符串列表的名称。由listID标识的列表必须早以由ListCreat初始化。
szString
指定将要置换当前元素的字符串型值。
返回值:
0:表明函数成功更新字符串列表中的当前元素。
< 0:表明函数未能更新字符串列表中的当前元素。该错误的通常的原因是下标超出有效列表元素的范围。
注解:
·该函数仅工作于字符串列表。
16.19  ListSetIndex
语法:ListSetIndex (listID, nIndex);
说明:ListSetIndex函数使用一个下标来指定一个字符串列表或数字列表中的一个特定元素为当前元素。你也可以使用使用一个常量来一次检索列表中的一个元素或跳到列表的头或尾。通过使用下标来访问列表中的项,你可以将数字列表或字符串列表处理为队列。
    下标数从0开始。例如,如果你在参数nIndex中输入5,则列表中的第六个物理位置的项成为当前元素。使用ListCurrentItem 和 ListCurrentString来检索当前元素的值。
参数:
listID
指定其下标要被设置的字符串列表或数字列表的名称。
nIndex
指定你要设置为当前元素的元素的数。列表元素从0开始计数。在该参数位置传递一个数值型值或下列预定义常量之一:
LISTFIRST:移动到列表的第一个元素。
LISTLAST:移动到列表的最后一个元素。
LISTNEXT:移动到列表的下一个元素。
LISTPREV:移动到列表的前一个元素。
返回值:
0:表明函数成功更新列表中的当前元素。
< 0:表明函数未能更新列表中的当前元素。
END_OF_LIST (1):表明下标超出有效列表元素的范围。
注解:
·在你设置被索引的元素为当前元素后,你可以在脚本中使用ListCurrentItem 或 ListCurrentString函数来检索被索引(当前)项的值。
·该函数可工作于字符串列表和数字列表。
16.20  ListWriteToFile
语法:ListWriteToFile (listID, szFileName);
说明:ListWriteToFile函数将一个字符串列表写到一个文本文件。每个字符串显示在文本文件中分隔的行中。
参数:
listID
指定写到一个文本文件中的字符串名。
szFileName
指定要写字符串列表到其中的文件的全限定名。如果文件不存在,则被创建。如果文件已经存在,则它被修改。
返回值:
0:函数成功。
< 0:函数失败。

这篇关于InstallShield内部库函数全集十六-列表处理函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625806

相关文章

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS内部机制学习03(事件组内部机制)

文章目录 事件组使用的场景事件组的核心以及Set事件API做的事情事件组的特殊之处事件组为什么不关闭中断xEventGroupSetBitsFromISR内部是怎么做的? 事件组使用的场景 学校组织秋游,组长在等待: 张三:我到了 李四:我到了 王五:我到了 组长说:好,大家都到齐了,出发! 秋游回来第二天就要提交一篇心得报告,组长在焦急等待:张三、李四、王五谁先写好就交谁的

java线程深度解析(一)——java new 接口?匿名内部类给你答案

http://blog.csdn.net/daybreak1209/article/details/51305477 一、内部类 1、内部类初识 一般,一个类里主要包含类的方法和属性,但在Java中还提出在类中继续定义类(内部类)的概念。 内部类的定义:类的内部定义类 先来看一个实例 [html]  view plain copy pu

Exchange 服务器地址列表的配置方法与注意事项

Exchange Server 是微软推出的一款企业级邮件服务器软件,广泛应用于企业内部邮件系统的搭建与管理。配置 Exchange 服务器地址列表是其中一个关键环节。本文将详细介绍 Exchange 服务器地址列表的配置方法与注意事项,帮助系统管理员顺利完成这一任务。 内容目录 1. 引言 2. 准备工作 3. 配置地址列表 3.1 创建地址列表 3.2 使用 Exchange

Python--列表简介

列表是什么 列表让你能够在⼀个地方存储成组的信息,其中既可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python 功能之⼀。 列表(list)是一种可变的序列类型,用于存储一系列有序的元素。这些元素可以是任何类型,包括整数、浮点数、字符串、其他列表(即嵌套列表)等。列表是动态的,可以在运行时增加或删除元素。 用方括号([ ])表示列表,用逗号分隔其中的元素。

移动UI:分类列表页、筛选页的设计揭秘。

移动UI的列表页设计需要考虑用户体验和界面美观性,以下是一些建议的设计要点: 1. 列表项的展示: 列表页应该清晰地展示各个列表项,包括标题、副标题、缩略图等内容,以便用户快速浏览和识别。可以使用卡片式布局或者简洁的列表布局。 2. 搜索和筛选: 如果列表项较多,应该提供搜索和筛选功能,方便用户查找感兴趣的内容。搜索框和筛选条件可以放置在页面顶部或者底部,以便用户方便操作。

【语句】如何将列表拼接成字符串并截取20个字符后面的

base_info = "".join(tree.xpath('/html/head/script[4]/text()'))[20:] 以下是对这个语句的详细讲解: tree.xpath('/html/head/script[4]/text()')部分: tree:通常是一个已经构建好的 HTML 文档树对象,它是通过相关的 HTML 解析库(比如 lxml)对 HTML 文档进行解

Java基础入门 【第七章 抽象、接口、内部类、枚举】(二)

匿名内部类书写格式: 父类或接口类型变量名=new父类或接口(构造方法实参列表){ //重写所有的抽象方法 @Override public返回值类型method1(形参列表){ 方法体实现 } @Override public返回值类型method2(形参列表){ 方法体实现 } //省略... }; //匿名内部类对象调用方法 变量名.重写方法(实参列表); 匿名