分享
 
 
 

InstallShield内部库函数之11 INI文件函数

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

InstallShield内部库函数之11 INI文件函数

INI文件函数从初始化和配置文件中获得信息或拷贝信息到这些文件。一个初始化文件是一个特殊的包含关键字名-值对的ASCII文件。关键字名-值对代表运行时对应用程序的选项。你也可以访问和修改专用的初始化文件和系统初始化文件。下面的列表简要描述了每个INI文件函数。

由AddProfString, ReplaceProfString, 或 WriteProfString对.ini文件所做的修改可以存入卸载记录中。然而,必须知道一些重要的限制。更多信息,可查看卸载.ini文件的条目。

AddProfString

在.ini文件的一段中添加一个非唯一键。

GetProfInt

从一个.ini文件中返回一个整数。

GetProfString

从一个.ini文件中返回一个字符串。

GetProfStringList

从一个.ini文件中返回键名和字符串值的列表。

ReplaceProfString

置换一个配置文件(.ini文件)中一个字符串。

WriteProfInt

将一个有整数的字符串写到一个.ini文件中。

WriteProfString

将一个字符串写到一个.ini文件中。

相关函数

SdShowFileMods

创建一个对话框,提议修改文件和提供如何进行的选项。

11.1 AddProfString

语法:AddProfString (szFileName, szSectionName, szKeyName, szValue);

说明:AddProfString函数无条件地添加一个配置字符串到一个.ini文件。使用AddProfString仅添加非唯一键,如那些在System.ini文件的[386Enh]段找到的(device = ...)。AddProfString添加KEY=VALUE行到指定的.ini文件的段的结尾。它不置换或更新一个现存键。为更新一个现存的非唯一键,调用ReplaceProfString。为在一个.ini文件中添加一个唯一键或更新一个唯一键的值,调用WriteProfString。

对.ini文件所做的修改可以存入到卸载记录中。然而,必须知道一些重要的限制。更多信息,可查看卸载.ini文件的条目。

参数:

szFileName

指定要添加配置字符串的.ini文件的名称。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。如果文件不存在,它被在指定文件夹中创建,如果文件名中不包括路径,该文件被创建在Windows文件夹中。注意如果文件名限定在一个不存在的路径中,AddProfString将失败。

szSectionName

指定.ini文件中的一个段名。配置字符串被插入在该段的结尾。如果该段不存在,InstallShield创建它。段名必须不被包围在定界中括号中([ ])。注意即使该段中由szKeyName指定的键已经存在,配置字符串仍被插入。

szKeyName

指定要插入的键名。该参数的值将显示在配置字符串中等号左边。

szValue

指定赋给该键的值。该参数的值将显示在配置字符串中等号右边。

返回值:

0:AddProfString成功添加指定的配置字符串到.ini文件。

< 0:AddProfString未能添加指定的配置字符串到.ini文件。

注解:

AddProfString不使用Windows API来修改.ini文件。Windows API 不能处理用AddProfString可能实现的修改类型。

11.2 GetProfInt

语法:GetProfInt (szFileName, szSectionName, szKeyName, nvValue);

说明:GetProfInt函数从一个.ini文件中检索一个整数。参数nDefault指定为0时,GetProfInt和Windows API GetPrivateProfileInt一样工作。

参数:

szFileName

指定一个.ini文件名,从中得到一个键的当前整型值。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。

szSectionName

指定.ini文件中的一个段名,从中查找szKeyName。段名必须不被包围在定界中括号中([ ])。

查找该名称时不区分大小写。

szKeyName

指定一个键,其整型值被返回到nvValue。查找该键不区分大小写。

nvValue

返回一个当前赋给szKeyName的整型值。由于GetPrivateProfileInt函数的限制,该函数只可以从该配置文件中返回一个16位的值。

因此,可以被返回的最大值是65,535;更大的值可能不会被正确返回。如果你需要返回一个更大的值,使用通常的文件处理函数,如FileGrep 和 FileInsertLine,然后通过调用StrToNum把返回的字符串转换成一个整型值。

返回值:

GetProfInt总返回0。

注解:

·如用Windows API 函数GetPrivateProfileInt一样,如果因不能找到文件,段或键名而发生的错误不会被返回;而是nvValue包含0。因此,不可能辨别一个错误和一个0的返回值。为辨别0和一个错误,直接调用GetPrivateProfileInt并指定一个候选的缺省值。

·在Windows NT(不是Windows 95及更高版本)下,一些对GetPrivateProfileInt函数(因此也是GetProfInt函数)的调用被自动映象到Windows注册表而不是配置文件。

11.3 GetProfString

语法:GetProfString (szFileName, szSectionName, szKeyName, svResult);

说明:GetProfString函数从一个指定的.ini文件中检索一个配置字符串。GetProfString和Windows API GetPrivateProfileString一样工作。

参数:

szFileName

指定一个.ini文件名,从中得到一个键的当前值。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。

szSectionName

指定.ini文件中的一个段名,从中查找szKeyName。段名必须不被包围在定界中括号中([ ])。

查找该段名时不区分大小写。为得到一个INI文件中的所有段名列表,给该参数传递一个空字符串。更多信息请看下面的注解。

szKeyName

指定一个键,它的值被返回到svResult。查找该键时不区分大小写。为得到一个段中所有键名的列表,给该参数传递一个空字符串。更多信息请看下面的注解。

svResult

如果szSectionName指定一个段名,szKeyName指定一个键名,该键的值被返回到该参数。如果szSectionName指定一个空字符串,所有段名返回到svResult。如果szKeyName指定一个空字符串,该段中的所有键名返回找svResult。

返回值:

0:GetProfString成功返回配置字符串的值。

< 0:GetProfString未能返回配置字符串的值。

-2:该键的值的长度超过2048个字符(可以由GetProfString返回到svResult的最大字符数)。

注解:

·为得到一个INI文件中所有段名的列表,该参数szSectionName传递一个空字符串。由空字符定界的段名返回到参数svResult。SvResult必须足够长来接受所有的段名。使用StrGetTokens函数来从该字符串中析取单个段名。

·为得到由szSectionName指定的段中的所有键名的列表,给参数szKeyName传递一个空字符串。由空字符定界的键名返回到参数svResult。SvResult必须足够长来接受所有的键名。使用StrGetTokens函数来从该字符串中析取单个键名。

·GetProfString使用你的操作环境的API提供的函数来访问.ini文件。因此,InstallShield的函数功能性可能受操作环境的限制。

11.4 GetProfStringList

语法:GetProfStringList (szFileName, szSectionName, listKeyNames, listValues);

说明:GetProfStringList函数从指定的INI文件中的指定段中检索键名和字符串值列表。

参数:

szFileName

指定一个.ini文件名,从中得到键名和字符串值。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。

szSectionName

指定.ini文件中的一个段名,从中查找键名和字符串值。段名必须不被包围在定界中括号中([ ])。查找该段名时不区分大小写。

listKeyNames

返回一个键名列表。由listKeyNames标识的字符串列表必须已经通过调用ListCreate而被初始化。

listValues

返回一个字符串值的列表。由listValues标识的字符串列表必须已经通过调用ListCreate而被初始化。

返回值:

0:表明函数成功读段并将键名和字符串值插入到指定列表中。

-2:表明一个或所有列表的ID是无效的。其它负值表明函数未能读段或未能将键名和字符串值插入到指定列表中。

11.5 ReplaceProfString

语法:ReplaceProfString (szFileName, szSectionName, szKeyName, szOrigValue,

szReplaceValue);

说明:ReplaceProfString函数置换.ini文件中的一个配置字符串。该函数可以置换重复键(非唯一键)的值,如在System.ini文件中[386Enh]段中找到的那些(device = ...)。该函数查找一个szKeyName = szOrigValue,,并置换该行。如果它没有找到,它就在szSectionName段开始添加zKeyName = szReplaceValue行。

如果你添加唯一键(就是,对一个给定的段,所有键都不同),使用WriteProfString函数。使用该函数只置换非唯一键名,如System.ini文件中的device=行。

对.ini文件所做的修改可以存入卸载记录中。然而,必须知道一些重要的限制。更多信息,可查看卸载.ini文件的条目。

参数:

szFileName

指定要置换配置字符串的.ini文件的名称。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。如果文件不存在,它被在指定文件夹中创建,如果文件名中不包括路径,该文件被创建在Windows文件夹中。注意如果文件名限定在一个不存在的路径中,ReplaceProfString将失败。

szSectionName

指定.ini文件中的一个段名,从中查找szKeyName。段名必须不被包围在定界中括号中([ ])。查找该段名时不区分大小写。

szKeyName

指定要被置换的键名。如果该键不存在,则被创建。

szOrigValue

标识由szKeyName指定的键的当前值。

szReplaceValue

指定赋给szKeyName的新值。该参数的值将显示在配置字符串(szKeyName = szValue)等号右边。

返回值:

0:表明函数成功置换或添加配置字符串。

< 0:表明函数未能置换或添加配置字符串。

注解:

·Windows .ini是文本文件。你必须在每个操作系统中使用InstallShield的合适版本。

11.6 WriteProfInt

语法:WriteProfInt (szFileName, szSectionName, szKeyName, iValue);

说明:WriteProfInt函数通过插入或更新一个配置字符串(整型值赋给键),来修改一个.ini文件。注意下列要点:

因为Windows 高速缓存保存文件的方法改变,你必须在调用WriteProfString后刷新高速缓存。(看下面的注解部分。)

对.ini文件所做的修改可以存入到卸载记录中。然而,必须知道一些重要的限制。更多信息,可查看卸载.ini文件的条目。

为写一个字符串值到一个.ini文件,则调用WriteProfString。

当你想修改System.ini文件时使用AddProfString 和 ReplaceProfString函数。

参数:

szFileName

指定要置换配置字符串的.ini文件的名称。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。如果文件不存在,它被在指定文件夹中创建,如果文件名中不包括路径,该文件被创建在Windows文件夹中。注意如果文件名限定在一个不存在的路径中,Write ProfInt将失败。

szSectionName

指定.ini文件中的一个段名,szKeyName将要被插入其中或将要被修改。段名必须不被包围在定界中括号中([ ])。查找该段名时不区分大小写。

szKeyName

指定要更新的唯一键。如果要被更新的键不存在于指定段中,则它被创建。

为从一个.ini文件中删除一整个段,给参数szKeyName传递一个空字符串。为从一个.ini文件的一个段中删除一个或多个键,使用WriteProfString。

iValue

指定赋给由szKeyName标识的唯一键的整型值。

返回值:

0:表明函数成功更新指定的.ini文件。

< 0:表明函数未能更新指定的.ini文件。

注解:

·WriteProfInt函数使用Windows API WritePrivateProfileString来访问.ini文件。因此,它的函数功能性受Windows API提供的函数功能的限制。.ini文件的更多信息可查询Microsoft Windows手册。

·.ini文件在Windows 95及更高版本下被放在高速缓存中,这种特性可能导致延迟将修改写到指定文件。这接着可能妨碍随后的文件操作,如调用CopyFile 和 XCopyFile。因此如果你随后要用到文件操作,则你必须在使用 WriteProfInt后,刷新高速缓存。简单地以空参数调用WriteProfInt来强制Windows 95 及更高版本立即写数据到.ini文件,如下所示:

WriteProfInt ("c:\\test.ini", "Windows", "KeyboardDelay", 100);

WriteProfInt ("","","",0); file://null string ("") in first three parameters

file://CopyFile should now have access to updated file.

CopyFile ("c:\\test.ini", "d:\\test.ini");

11.7 WriteProfString

语法:WriteProfString (szFileName, szSectionName, szKeyName, szValue);

说明:WriteProfString函数写一个配置字符串到一个.ini文件。根据传递给WriteProfString的值,它可以创建一个段,删除一整个段,创建一个唯一的KEY=VALUE条目,删除一个KEY=VALUE条目,或更新一个键的值。

注意要点同WriteProfInt中的注意要点。

参数:

szFileName

指定.ini文件的名称。如果szFileName是未限定名(也就是,不包括一个驱动器指示符和路径),InstallShield在Windows文件夹中查找该文件。如果文件不存在,它被在指定文件夹中创建,如果文件名中不包括路径,该文件被创建在Windows文件夹中。注意如果文件名限定在一个不存在的路径中,Write ProfString将失败。

szSectionName

指定.ini文件中的一个段名,szKeyName将要被插入其中或将要被修改。段名必须不被包围在定界中括号中([ ])。查找该段名时不区分大小写。

szKeyName

指定要更新或删除的唯一键。如果要被更新的键不存在于指定段中,则它被创建。为删除该键,给参数szValue传递一个空字符串。为删除由szSectionName指定的整个段(包括它里面的所有条目),给参数szKeyName传递一个空字符串。

szValue

指定赋给由szKeyNamw标识的唯一键的值。为删除该键,给该参数传递一个空字符串。为删除该键的值而保留键本身,则给该键传递一个空格。

返回值:

0:表明函数成功写字符串到指定的.ini文件。

< 0:表明函数未能写字符串到指定的.ini文件。

注解:

请参阅WriteProfInt的注解。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有