分享
 
 
 

InstallShield内部库函数之13 字符串函数

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

InstallShield内部库函数之13 字符串函数

字符串函数提供处理字符串变量和文字的功能。字符串函数与标准C语言函数相似。返回值也遵守C语言的规定。

CopyBytes

从一个字符串中拷贝指定字节数到另一个。

GetDir

从一个路径名或全限定文件名中删除驱动器标识。

GetDisk

从一个路径名或全限定文件名中检索磁盘驱动器标识。

NumToStr

将一个数字转换为一个字符串。

ParsePath

从一个路径中检索驱动器,路径,文件名或扩展名。

StrCompare

将一个字符串和另一个比较。

StrFind

在另一个字符串中查找一个字符串。

StrGetTokens

基于指定定界符从一个字符串中得到一个令牌。

StrLength

返回一个字符串中的字节数。

StrLengthChars

返回一个字符串中的字符数。

StrRemoveLastSlash

删除一个路径字符串中的最后的反斜杠。

StrSub

从一个字符串中返回一个子串。

StrToLower

转换字符串中的所有字母字符为小写。

StrToNum

转换字符串为一个数字。

StrToUpper

转换字符串中的所有字母字符为大写。

13.1 CopyBytes

语法:CopyBytes (svDest, nIndexDest, svSrc, nIndexSrc, nCount);

说明:CopyBytes函数从一个字符串中拷贝指定的字节数到另一个字符串。你可以在源和目标字符串中指定偏移下标。

参数:

svDest

指定目标字符串。

nIndexDest

指定在目标字符串中的偏移下标(开始点),从这个位置开始插入这些字节。字符串的第一个字节是在位置0。

svSrc

指定源字符串。不要传递一个大小大于256个字符的自动调整大小的字符串。而应该用一个显式大小声明字符串。nIndexSrc

指定源字符串的偏移下标(开始点),从这个位置开始拷贝这些字节。字符串的第一个字节是在位置0。

nCount

指定你要从svSrc拷贝到svDest的总的字节数。该值必须不大于svSrc-1的大小。例如,如果svSrc被声明为大小为512(给它最大字符串长度511),则传递给nCount的值必须是511或更少。

返回值:

0:CopyBytes成功地从一个字符串拷贝指定数目的字节到另一个字符串。

< 0:CopyBytes没有能拷贝这些字节。

注解:

当你工作在二进制文件时,CopyBytes有用。

13.2 GetDir

语法:GetDir (szPath, svDir);

说明:GetDir函数从由szPath指定的全限定路径或文件名中删除驱动器指示符,并在参数svDir返回路径或文件名的余项。路径名必须包含一个驱动器指示符。它可以是一个UNC(通用导航计算机)路径。

在下面的例子中,全限定路径C:\Windows在svDir返回为\Windows。

GetDir("C:\\Windows", svDir);

在下一个例子中,UNC路径\\TheServer\TheSharedDevice\Programs在svDir返回为\Programs。

GetDir("\\\\TheServer\\TheSharedDevice\\Programs", svDir);

参数:

szPath

指定包含一个驱动器指示符的路径。

svDir

返回没有驱动器指示符的路径。如果szPath是一个UNC路径,GetDir将返回没有服务器名和共享设备名的路径。

返回值:

0:表明函数成功返回没有驱动器指示符的路径名。

<0:表明函数未能返回没有驱动器指示符的路径名。

13.3 GetDisk

语法:GetDisk (szPath, svDisk);

说明:GetDisk函数从由szPath指定的全限定路径或文件名中析取磁盘驱动器指示符。

参数:

szPath

指定一个包含一个驱动器指示符的全限定路径或文件名。如果不包含一个驱动器指示符,GetDisk将失败。传递给szPath的值可以是一个UNC路径。

svDisk

返回驱动器指示符(包含冒号)。如果szPath是一个UNC路径,GetDisk以"\\服务器\共享设备"格式返回服务器名和共享设备名。

返回值:

0:表明函数成功返回驱动器指示符。

< 0:表明函数未能返回驱动器指示符。

13.4 NumToStr

语法:NumToStr (svString, nValue);

说明:NumToStr函数将一个数字转换为一个字符串。

参数:

svString

返回nValue的字符串等价值(等效字符串)。

nValue

指定要转换为一个字符串的数字。

返回值:

0:表明函数成功将数字转换为一个字符串。

< 0:表明函数未能将数字转换为一个字符串。

13.5 ParsePath

语法:ParsePath (svReturnString, szPath, nOperation);

说明:ParsePath函数检索一个存在路径的指定部分。函数可工作于任何有效路径,包括短路径,长路径和UNC路径,它们可能包含或不包含一个具体文件名。下面是可以用该函数分析的一些路径样本:

\Path1\Path2\Filename.exe

Filename

Filename.exe

\Path1\Path2\Filename

D:

D:\

\Server Name\Share Name\Share Directory

其它任何合法DOS路径。

参数:

svReturnString

返回参数szPath中的路径由参数nOperation所指定的部分。

szPath

指定要分析的路径。当指定一个不包含一个文件名的路径时,你必须在把它传递给ParsePath之前在路径结尾添加一个反斜杠;否则路径的最后部分会被解释为一个文件名。

nOperation

指定返回路径的哪个元素。在该参数位置传递下列预定义常量之一:

DIRECTORY:表明必须在svReturnString返回路径中去除磁盘驱动器字符和文件名。当该选项使用在一个UNC路径时,ParsePath返回没有服务器和共享设备名的路径,并且没有文件名(可能被指定)。例如,UNC路径\\TheServer\TheSharedDevice\TheApp\TheFile.exe在svReturnString返回\TheApp\。

DISK:表明必须在svReturnString返回磁盘驱动器指示符(驱动器字符后随一个冒号)。当该选项使用在一个UNC路径时,ParsePath返回服务器名和共享设备名。例如,UNC路径\\TheServer\TheSharedDevice\TheApp\TheFile.exe在svReturnString返回\\TheServer\TheSharedDevice。

EXTENSION_ONLY:表明必须在svReturnString返回文件扩展名。它不包括句点。

FILENAME:表明必须在svReturnString返回完整的文件名(也就是说,包括它的文件扩展名)。

FILENAME_ONLY:表明必须在svReturnString仅返回文件名(也就是说,不包括它的文件扩展名)。

PATH:表明必须在svReturnString返回路径中去除文件名。该选项和DIRECTORY不同,因为驱动器指示符(如果在szPath中被指定)包括在返回路径中。当szPath指定一个UNC路径时,服务器名和共享设备名被包括在返回路径中。例如,UNC路径\\TheServer\TheSharedDevice\TheApp\TheFile.exe在svReturnString返回\\TheServer\TheSharedDevice\TheApp\。

返回值:

0:表明函数成功分析路径字符串。

< 0:表明函数未能分析路径字符串。

13.6 StrCompare

语法:StrCompare (szStringA, szStringB);

说明:StrCompare函数比较两个字符串。比较不区分大小写。

参数:

szStringA

指定要比较的第一个字符串。

szStringB

指定要比较的第二个字符串。

返回值:

< 0:表明szStringA的字符串的值小于szStringB的字符串的值。

= 0:表明两个字符串相等。

> 0:表明szStringA的字符串的值大于szStringB的字符串的值。

注解:

·StrCompare函数比较两个字符串,通过检验每个字符串中的第一个字符,然后每个字符串中的第二个字符,以次类推,直到它找到一个不相等的字符或到达了字符串结尾。

·你选择的语言的语言驱动程序确定哪个字符串大或字符串相等。如果你不使用一个语言驱动程序,Windows使用一个内部函数。对于一个双字节字符集(DBCS)版本的Windows,该函数可以比较两个DBCS字符串。

13.7 StrFind

语法:StrFind (szString, szFindMe);

说明:StrFind函数确定传递给参数szFindMe的字符串能否在传递给参数szString的字符串中找到。如果szFindMe 在szString 中找到,StrFind返回szFindMe的第一个字符在 szString 中的位置。注意 szString 中第一个字符的位置是0。该函数不区分大小写并且只可以用来找到szFindMe 在szString中首次出现。

下面的例子中,StrFind将返回值13。

nStartPos = StrFind("Scripting is fun","fun");

如果只需要一个TRUE或FALSE的返回值来指示一个字符串是否包含另一个字符串,(也就是,如果子串的位置是不重要的),使用字符串查找操作符(%),如下所示:

if (szString % szFindMe) then ...

在if语句中可以被解析的布尔表达式中,你可以只使用字符串查找操作符。你不能在repeat语句或while语句中使用它。

参数:

szString

指定要查找的字符串。

szFindMe

指定要在szString中查找的字符串。

返回值:

X:如果szString包含szFindMe,X是szFindMe中第一个字符的数值位置。SzString中第一个字符是在位置0。

< 0:表明szString不包含szFineMe。

13.8 StrGetTokens

语法:StrGetTokens (listID, szString, szDelimiterSet);

说明:StrGetTokens函数从szString指定的字符串中析取子串(称为令牌)并且把它们放置到listID指定的列表中。SzString中的子串必须被由szDelimiterSet指定的一个或多个字符分隔(相互分隔)。

例如,如果你调用StrGetTokens,字符串"One;Two;Three;Four;Five"作为第二个参数,";"为第三个参数,"One", "Two", "Three", "Four", 和 "Five"这五个字符串将被返回到listID。使用列表函数,如ListGetFirstString和 ListGetNextString来访问列表中的每个令牌。

如果szString中的第一个字符与szDelimiterSet中的一个字符匹配,一个空字符串将被插入为列表的第一个元素。同样,如果szString中的最后一个字符与szDelimiterSet中的一个字符匹配,一个空字符串将被插入为列表的最后一个元素。

参数:

listID

返回令牌列表。由listID标识的字符串列表必须已经通过对ListCreate的调用而初始化。

szString

指定要被分析的字符串。

szDelimiterSet

指定一个或多个分隔符的集合。每个分隔符是一个字符(1字节)。如果你在该参数传递一个空字符串,该函数以空字符为分隔符来查找。当你使用GetProfString函数时有用。

当一个空格被指定为分隔符,StrGetTokens将连续的空格处理作一个单独的分隔符。

返回值:

0:表明函数成功分隔字符串并把令牌(token)插入到指定列表中。

< 0:表明函数未能分隔字符串并把令牌插入到指定列表中。

13.9 StrLength

语法:StrLength (szString);

说明:使用StrLength函数得到一个字符串中的字节数。为确定一个字符串中的字符数,使用StrLengthChars。

参数:

szString

指定要确定其大小的字符串。

返回值:

X:X是字符串中的字节数。

< 0:表明函数未能确定字符串中的字节数。

13.10 StrLengthChars

语法:StrLengthChars (szString);

说明:使用StrLengthChars函数得到一个字符串中的字符数。为确定一个字符串中的字节数,使用StrLength。

参数:

szString

指定要确定其大小的字符串。

返回值:

X:X是字符串中的字符数。

< 0:表明函数未能确定字符串中的字符数。

13.11 StrRemoveLastSlash

语法:StrRemoveLastSlash (svPath);

说明:StrRemoveLastSlash函数从一个路径说明中删除结尾反斜杠。

参数:

svPath

指定一个字符串,其值必须是一个路径说明;返回没有结尾反斜杠的路径。注意如果路径不包含一个反斜杠,它不作修改就被返回。

返回值:

0:表明函数成功删除结尾反斜杠或路径不包含一个结尾反斜杠。

< 0:表明函数未能删除结尾反斜杠。

注解:

·StrRemoveLastSlash给将AskPath 或ParsePath返回的路径剪裁掉结尾反斜杠提供了一个便利的途径。因为它的目的是产生一个有效路径名,StrRemoveLastSlash不从一个根目录说明中删除反斜杠,如"A:\"或 "C:\";这样做可将一个有效路径名转换到一个驱动器说明(标识)。你是否需要在任何情况下剪裁掉一个路径的结尾反斜杠,可参考下面的脚本片段。

AskPath("", "", svPath);

if (StrLength(svPath) = 3)

&& (svPath[1] = ":")

&& (svPath[2] = "\") then

svTempString = svPath;

StrSub(svPath,svTempString,0,2);

else

StrRemoveLastSlash(svPath);

endif;

13.12 StrSub

语法:StrSub (svSubStr, szString, nStart, nLength);

说明: StrSub函数拷贝szString指定的字符串的部分,从nStart指定的位置开始。参数nLength指定要拷贝的字符数。

参数:

svSubStr

返回从szString拷贝的子串。

szString

指定要从中拷贝子串的字符串。

nStart

指定一个szString中的偏移量来标识要被拷贝的第一个字符。注意szString中的第一个字符的位置是0。如果传递给nStart的值等于或大于szString的长度,在svSubStr返回一个空字符串。

nLength

指定从szString拷贝的字符数。如果该值指定了多于nStart和szString结尾之间的字符数,在svSubStr返回从nStart到字符串结尾的所有字符。

返回值:

X:X等于svSubStr的字符数。

13.13 StrToLower

语法:StrToLower (svTarget, szSource);

说明:StrToLower函数将一个字符串中的所有字母转换为小写。该函数不影响非字母字符。

参数:

svTarget

返回szSource中的字符串,其所有字符均已转换为小写。

szSource

指定均要转换为小写字符的字符串。

返回值:

0:表明函数成功修改了字符串的大小写。

< 0:表明函数未能修改了字符串的大小写。

13.14 StrToNum

语法:StrToNum (nvVar, szString);

说明:StrToNum函数将一个字符串转换为一个数字,与C函数atol()相似。它检查svString,从位置0的字符开始,在字符串中继续直到它到达字符串结尾或遇到一个不在"0".."9"范围内的一个字符。(字符串中的第一个字符可能是一个加号或减号。)将出现下列处理过程:

如果字符串中的所有字符在"0".."9"范围中,由字符串代表的数字赋给nvVar。

如果字符串以一个或多个"0".."9"范围内的字符开始但也包含一个或多个非数字字符,则将出现的第一个非数字字符的左边的所有字符赋给nvVar。例如,如果szString是 "-123ABC456", nvResult将是 -123。

如果字符串的第一个字符不在"0".."9"范围内并且不是一个加号或减号,该函数失败。

如果字符串的第一个字符是一个加号或减号,并且第二个字符不在"0".."9"范围内,该函数失败。

参数:

nvVar

返回从szString的字符串生成的数字。

szString

指定要转换为一个数字的字符串。

返回值:

0:表明函数成功将字符串转换为数值型值。

< 0:表明函数未能将字符串转换为数值型值。

13.15 StrToUpper

语法:StrToUpper (svTarget, szSource);

说明:StrToUpper函数将一个字符串中的所有字母转换为大写。该函数不影响非字母字符。

参数:

svTarget

返回szSource中的字符串,其所有字符均已转换为大写。

szSource

指定均要转换为大写字符的字符串。

返回值:

0:表明函数成功修改了字符串的大小写。

< 0:表明函数未能修改了字符串的大小写。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有