NSIS文字及字符串函数与头文件介绍

原文 NSIS文字及字符串函数与头文件介绍

文字函数,顾名思义就是处理字符串的函数。使用这些字符串函数前,必须先包含头文件WordFunc.nsh。该头文件目前包含如下一些函数:WordFind、WordFind2X、WordFind3X、WordReplace、WordAdd、WordInsert、StrFilter、VersionCompare、VersionConvert等。这些函数的主要作用都是查找字符串。下面我们就常用函数用法做以简单介绍。

 

WordFind

用于在给定字符串中查找使用指定的分隔符分隔的字符串。由于功能众多,其语法与参数在此不再赘述。举例说明:假如我们要从字符串“first;second;third;forth”中查找第二个字符串,就必须使用这样的代码:

${WordFind} "first;second;third;forth" ";" +2 $R0

输出的结果$R0为second。其中的+2中的“+”代表从左查找,2代表第二个字符串。

 

WordFind2X

用于在给定字符串中查找使用指定的两个分隔符包围的字符串。功能强大,语法与参数亦不赘述。举例说明其用法:假如我们要从字符串“<System>|<Guest>|<User>”中查找第三个字符串,也就是倒数第一个,即User,用第一个就比较麻烦了。这是我们需要借助WordFind2X查找。代码如下:

${WordFind2X} "<System>|<Guest>|<User>" "<" ">" -1 $R0

输出的结果$R0为User。其中的-1中的“-”代表从右计算,1代表第二个字符串。

 

WordFind3X

与WordFind2X比较相似,用于在给定字符串中查找使用指定的两个分隔符包围且含有指定字符串的字符串。使用方法将不做介绍,用户可以参考中文版本的帮助文件。

 

WordReplace

WordReplace的作用是从字符串中替换或删除词语。语法:

${WordReplace} "[字符串]" "[词语1]" "[词语2]" "[E][选项]" $输出变量 

 

WordAdd

从选项中指定的字符串2添加词语到字符串1(如果不存在),或删除词语(如果存在)。语法:

${WordAdd} "[字符串1]" "[分隔符]" "[E][选项]]" $输出变量 

 

WordInsert

在字符串中插入词语。语法:

${WordInsert} "[字符串]" "[分隔符]" "[词语]" "[E][选项]]" $输出变量 

 

StrFilter

转换字符串为大写或小写;设置符号过滤。语法:

${StrFilter} "[字符串]" "[选项]" "[符号1]" "[符号2]" $输出变量 

 

VersionCompare

用来比较版本号的大小。例如,比较1.1.0.1和1.1.1.0的大小。语法:

${VersionCompare} "[版本1]" "[版本2]" $输出变量 

 

VersionConvert

将带字母的版本转换为可用于比较的十进制数版本号。语法:

${VersionConvert} "[版本]" "[字符列表]" $输出变量

用法示例:${VersionConvert} "9.0c" "" $R0

结果变量$R0的值为9.0.03。这样转换后可以用于和别的版本如9.0a比较。

 

时间: 2022-12-18

NSIS文字及字符串函数与头文件介绍的相关文章

语言-static 函数定义在头文件中有什么作用

问题描述 static 函数定义在头文件中有什么作用 static 函数定义在头文件中有什么作用?学渣求教,static 不就是要限制作用域吗? 解决方案 是限定范围的,你的理解没有错.所以在 .h 中定义的 static 函数只能供本头文件中定义的函数使用 解决方案二: static表示静态类型.同时限定在模块内可见. 解决方案三: static用于声明静态变量,添加了该标识意味着这个变量的值在整个程序运行期间都存在的 解决方案四: static是静态变量.局部变量.其作用域是从定义点到ret

c++常用函数及头文件

数学 字符相关 字符串相关 随机数及atoi 注意C++11有更强大的方法! time相关

C/C++字符串函数之复制函数详解_C 语言

突然发现对字符串函数缺乏系统的了解,所以花了一点时间专门整理下,在此记录之,以方便自己及有需要的人使用. C/C++字符串函数的头文件:string.h 复制函数主要有4个,如下: 1.char * strcpy(char* destination,const char * source); 2.char* strncpy(char* destination,const char* source,size_t num); 3.void * memcpy(void* destination,con

用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么?

问题描述 用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么? 急急急,,之前需要声明吗?头文件是什么? 用iitao(num,buff,10)将数字转化为字符的函数之前需要声明吗?头文件是什么? 解决方案 是itoa,integer to ascii的缩写 解决方案二: itoa, 用 法:char *itoa(int value, char *string, int radix); 是英文integer to array(将int整型数转化为一个字符串,

C++的头文件中类声明后忘记加分号产生不可预期的编译错误

头文件 Test.h 的内容是 class Test { public: virtual void test1(); } 实现文件是 Test.cpp #include "Test.h" #include <iostream> using namespace std; void Test::test1(){ cout<<"Hello"<<endl; } 编译时出现错误 c:\program files\microsoft visu

c-请教大神库函数与头文件的关系

问题描述 请教大神库函数与头文件的关系 书上说头文件都是些函数的声明,库函数是函数的具体实现,想请问下,一个头文件和 一个库函数是不是一 一对应呢?在C的开头写上头文件是不是就相当于对要调用函数的 声明了呢? 解决方案 C语言的头文件和库文件(函数库) 在C语言中,头文件提供对常量的定义和对系统函数及库函数调用的声明(函数原型).存放的标准位置是/usr/include目录及其子目录. gcc的-I选项(增加头文件的搜索路径):gcc -I/usr/myInclude main.c 在标准位置及

头文件 函数主体-急!!研究源代码,找不到函数的主体!

问题描述 急!!研究源代码,找不到函数的主体! 为什么用sourcelight察看源代码会发现有些函数只在头文件中定义了,但却找不到函数的主体? /* database handling */ extern int cl_load(const char *path, struct cl_engine **engine, unsigned int *signo, unsigned int options); extern const char *cl_retdbdir(void); 就是这两个函数

头文件-请问ubuntu内有自带的单向hash函数吗?

问题描述 请问ubuntu内有自带的单向hash函数吗? 就是把一个大文件快速hash成一个小文件,有这样的函数吗?头文件在那个目录里呢? 解决方案 这和ubuntu没有什么关系. google下md5 sha1 sha256 rc4等等各种散列的函数有很多. 解决方案二: ubuntu自带有md5sum等命令 解决方案三: 参考:http://blog.csdn.net/xhhjin/article/details/8450686

解析C++/CLI之头文件、内联函数与数组

头文件与函数声明 在传统C++的设计与实现中,你可对需建模的每种类型进行定义,并把定义放在各自的头文件中:而头文件中,一般会包含类型名.成员名.及相关小型成员函数的内联定义. 与各个单独编译的源文件是通过头文件来共享信息不同,在C++/CLI中,这些信息是通过程序集来共享的.就拿常举例的Point类来说,它单独编译,并生成了一个名为"Point.dll"的程序集.任何需要某种类型定义的应用程序,都必须编译和链接带有此类型的程序集,这同时也要求此DLL形式的程序集中有完整的类型定义:同样