当前位置: > 部署 >

NSIS:文本操作外部DLL库StringPlug.dll(见与不见开发)

  • 部署
  • 2015-03-16 22:26

鉴于NSIS处理字符功能有太多局限,特开发外部DLL库用于NSIS字符文本&文本文件的处理。

注: 第三方DLL不是NSIS插件,但能够和插件一样甚至更强大一些。

此外部DLL库由“见与不见”同学开发,轻狂志首发。

 

轻狂写了几个示例代码:

!define PRODUCT_NAME "文本操作外部DLL库测试"
SetCompressor /SOLID lzma

Name "${PRODUCT_NAME}"
OutFile "文本操作外部DLL库测试.exe"
SilentInstall silent

Section
/*
1.文本_到大写  Text_to_uppercase
子程序名:文本_到大写
把字母转换到大写
返回值类型:文本型
参数<1>的名称为"要转换的文本",类型为"文本型"。注明:要转换的文本。
*/
	strcpy $R1 "aabcdfefgaa"
	System::Call 'Stringplug::Text_to_uppercase(m)(R1)m.R0'
	MessageBox MB_ICONINFORMATION|MB_OK '$R1 转换为 $R0'

/*
2.文本_到小写  Text_to_lowercase
子程序名:文本_到小写
把字母转换到小写
返回值类型:文本型
参数<1>的名称为"要转换的文本",类型为"文本型"。注明:要转换的文本。
*/
	strcpy $R1 "aaADbcdfFefgaGDa"
	System::Call 'Stringplug::Text_to_lowercase(m)(R1)m.R0'
	MessageBox MB_ICONINFORMATION|MB_OK '$R1 转换为 $R0'

/*
3.文本_取出现次数  Text_times
子程序名:文本_取出现次数
返回值类型:整数型
参数<1>的名称为"被搜索文本",类型为"文本型"。
参数<2>的名称为"欲搜索文本",类型为"文本型"。
参数<3>的名称为"是否区分大小写",类型为"整数型",0=不区分 1=区分大小写,允许接收空参数数据,默认不区分。
*/
	strcpy $R1 "aaADbcdfFefgaGDa"
	System::Call 'Stringplug::Text_times(m,m,i)(R1,"A","1")m.R0'
	MessageBox MB_ICONINFORMATION|MB_OK 'A 共出现了 $R0 次'


/*
4.文本_替换  Text_replacement
子程序名:文本_替换
批量替换文本;
返回值类型:文本型
参数<1>的名称为“原文本”,类型为“文本型”。
参数<2>的名称为“欲被替换的子文本1”,类型为“文本型”。
参数<3>的名称为“用作替换的子文本1”,类型为“文本型”。
参数<4>的名称为“替换进行的次数”,类型为“整数型”,允许接收空参数数据。
注明:可空;参数值指定对子文本进行替换的次数。如果省略,默认进行所有可能的替换。
参数<5>的名称为“是否区分大小写”,类型为“整数型”,0=不区分 1=区分大小写,允许接收空参数数据,默认不区分。
注明:可空; 初始值为“0”不区分大小写;为“1”区分大小写。
*/
	strcpy $R1 "aabcdfefgaa"
	#### m=文本型 i=整数型 ####
	System::Call 'Stringplug::Text_replacement(m,m,m,i,i)(R1,"AA","AB",,"0")m.R0' ;注: (m,m,i)参数类型 (R1,R2,1) 参数信息
	MessageBox MB_ICONINFORMATION|MB_OK '$R1 替换为 $R0'
SectionEnd

Function .onInit
	InitPluginsDir
	File /oname=$PLUGINSDIR\StringPlug.dll "StringPlug.dll"
	System::Call 'kernel32::LoadLibraryA(m "$PLUGINSDIR\StringPlug.dll")'  #把DLL加载到内存
FunctionEnd

Function .onGUIEnd
	System::Free
FunctionEnd

 

上述代码只是抛砖引玉,呵呵,此DLL的功能当然不止于此,更多实用功能,您还是下载回去慢慢研究吧。

 

猜你喜欢

最新评论

说点什么吧
  • 全部评论(0