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

相关文章

Python中DataFrame转列表的最全指南

《Python中DataFrame转列表的最全指南》在Python数据分析中,Pandas的DataFrame是最常用的数据结构之一,本文将为你详解5种主流DataFrame转换为列表的方法,大家可以... 目录引言一、基础转换方法解析1. tolist()直接转换法2. values.tolist()矩阵

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

python展开嵌套列表的多种方法

《python展开嵌套列表的多种方法》本文主要介绍了python展开嵌套列表的多种方法,包括for循环、列表推导式和sum函数三种方法,具有一定的参考价值,感兴趣的可以了解一下... 目录一、嵌套列表格式二、嵌套列表展开方法(一)for循环(1)for循环+append()(2)for循环+pyPhWiFd

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

Java捕获ThreadPoolExecutor内部线程异常的四种方法

《Java捕获ThreadPoolExecutor内部线程异常的四种方法》这篇文章主要为大家详细介绍了Java捕获ThreadPoolExecutor内部线程异常的四种方法,文中的示例代码讲解详细,感... 目录方案 1方案 2方案 3方案 4结论方案 1使用 execute + try-catch 记录

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da