找回密码
 加入
搜索
查看: 20051|回复: 29

[原创] 对“《Let's AutoIt》自由天空AU3零起步教程 AutoIt”教程中字符串相关函数解释

 火... [复制链接]
发表于 2010-1-31 12:57:46 | 显示全部楼层 |阅读模式
大家好,这是对“《Let's AutoIt》自由天空AU3零起步教程 AutoIt”教程中第六章 第三节 字符串相关函数 进行详细的解释(有错误请谅解)  ,顺序是按照“《Let's AutoIt》自由天空AU3零起步教程 AutoIt”的顺序进行一一解释!
1、StringLeft
   语法:StringLeft ( "字符串", 数量 )
作用:返回字符串中从左开始指定数量的字符. 注:数量:要得到的字符数。
例如:
$Var = StringLeft("大家好,见到你们很高兴-lchl0588 ", 11)
MsgBox(0, "最左边11个字符为:", $Var)
2、StringRight
   语法:StringRight ( "字符串", 数量 )
   作用:返回字符串中从右开始指定数量的字符.
   例如:
$Var = StringRight ("大家好,我们在学习:AU3 ", 10        )
MsgBox(0, "最右边10个字符为:", $Var)
呵呵,我们遇到一个有意思的现象:Left 翻译下看是什么意思:是左边,而Right呢,是右边!其含义还是保留点好-------丰富下想像力!!!
3、StringMid
   语法:StringMid ( "字符串", 起始位置 [, 数量] )
   作用:取某个字符串的部分字符.也就是:为了获得“字符串”某一部分的内容,规定了“从哪里开始(就是起始位置)”,到“哪里结束(就是数量)”。
   例子:
Dim $a,$Var
$a="大家好,我们在学习: AU3"
$Var = StringMid ($a, 5,10)
MsgBox(0, "获取某部分字符:", $Var)
呵呵,再叨唠几句:给大家出个作业吧:对比下1   2与3 有哪不同-----心里明白就行了
4、StringLen
  语法:StringLen ( "字符串" )
  作用:返回指定字符串的字符总数. 也就是获取“字符串”总个数------包括符号哦
  例子:
Dim $a,$Var
$a="大家好,我们在学习:AU3"  ;我查了下一共13个,运行看结果吧!
$Var = StringLen ($a)
MsgBox(0, "字符串长度为:", $Var)
5、StringLower
  语法:StringLower ( "字符串" )
  作用:转换字符串为小写字母.  注:把“字符串”中所有字母全部转换为小写字母!
  例子:
Dim $a,$Var
$a="HELLO EVERYone,我们在学习:AU3"
$Var = StringLower($a)
MsgBox(0, "字符串转换为小写为:", $Var)
6、StringUpper
  语法:StringUpper ( "字符串" )
作用:转换字符串为大写字母.  注:把“字符串”中所有字母全部转换为大写字母!
例子:
Dim $a,$Var
$a="Hello ereryone,我们在学习:au3"
$Var = StringUpper($a)
MsgBox(0, "字符串转换为小写为:", $Var)
StringLower 与 StringUpper   意思正好相反
7、StringReplace
  语法:StringReplace ( "字符串", "搜索字符串/起始位置", "替换字符串" [, 数量 [, 区分大小写]] )
  作用:替换字符串中的指定子串. 注:在所有的“字符串(内容)”中,查找/指定位置 的内容后,并替换,可以规定只替换其中几个并规定是否  区分大小写(0 不区分,1 区分,2 使用基本/快速的比较方法)。
        (注:偶理解:感觉跟修改作业差不多,哪里错了,改哪里!)
  例子:
Dim $a,$Var
$a="大 家 好,我 们 在学习:AU3"
$Var = StringReplace($a," ", "-")
$numreplacements = @extended
MsgBox(0, "新字符串为:", $Var)
MsgBox(0, "共替换的数量为:", $numreplacements)
注:$a变量的值是“大(空格)家(空格)好,我(空格)们(空格)在学习:AU3
   $Var = StringReplace($a," ", "-") 看到$a," ",双引号里是空格,不是什么没有,这一点要注意哦。如果我想把$a的内容全改呢,那用学过的知识,一定会办到的!!(启示下:把空格换为上述“三”项的函数)
8、StringSplit
   语法:StringSplit ( "字符串", "分隔符" [, 标志 ] )
   作用:在整个“字符串”中,以“分隔符”为标准(可理解成分界线),把“字符串”拆分成若干个“子串”。
      标志参数:0(默认值)时把分隔符中的每个字符作为分隔标准!
               为1时,把分隔符中的整体作为分隔标准!
               为2,关闭第一个元素中的返回数量 - 方便使用 UBound() 得到此基于0开始的数组
这里注意下:标志参数只针对“分隔符”规定。不是.“StringSplit”哦!
如果想详细的了解这个函数,请参照AU3帮助!!!
实例  为了大家更好的明白:请参照:[url= http://www.autoitx.com/forum.php ... &extra=page%3D2]点此 进入,找三楼afan版版的代码[/url]
说下,以“@CRLF & @CRLF ”为分隔符,把a.txt 分成若干个小段,然后以1~A~Z的顺序 进行排列等等!
如果请更进一步的了解,希望把这篇文章的内容都看一遍!!!直到看明白为止!!!
9、StringStripCR
   语法:StringStripCR ( "字符串" )
   作用:删除字符串中的所有回车( Chr(13) ). 注:Chr(13)=回车 [属于(ASCII码)].
   例子:
Dim $a=StringStripCR("大家好,我们在学习"  & Chr(13) &":AU3")
MsgBox(0,"StringStripCR 例子",$a)
10、StringAddCR
   语法:StringAddCR ( "字符串" )
   作用:在指定字符串的所有换行符( Chr(10) )前附加一个回车( Chr(13) )
   例子:
Dim $a=StringAddCR("大家好"& Chr(10) &"我们"& Chr(10) &"在"& Chr(10) &"学习:"  & Chr(10) &"AU3")
MsgBox(0,"StringStripCR 例子",$a)
11、StringStripWS
   语法:StringStripWS ( "字符串", 标志 )
   作用:删除掉所有  字符串中的"空白符". 注:空白符=空格。
标志:1、去掉左边空格 2、去掉右边空格 3、去掉双(或多)空格 8、去掉所有空格
例子:
Dim $a=StringStripWS("大家好"&" "&"我们"&" "&"在"&" "&"学习:"&" "&"AU3",8)
MsgBox(0,"StringStripWS 例子",$a)
12、StringTrimLeft
   语法:StringTrimLeft ( "字符串", 数量 )
   作用:删除字符串中从左开始指定数量的字符.
   假如你明白 StringLeft ,这个也不用说了! “数量”呢-----想删除的个数!
13、StringTrimRight
   语法:StringTrimRight ( "字符串", 数量 )
作用:删除字符串中从右开始指定数量的字符.
参照  12、StringTrimLeft
14、StringCompare
   语法:StringCompare ( "字符串1", "字符串2" ,[区分大小写] )
   作用:按选项比较两个字符串. 注:有两个例子----字符串1和字符串2  进行比较,条件是区分大小写。
有三种情况:0、不区分(默认)  1、区分   2、不区分大小写, 使用基本/快速的比较方法
例子:
$Var= StringCompare("HAO朋友", "hao朋友",0)
MsgBox(0, "StringCompare Result (例子0):", $Var)

$Var= StringCompare("HAO朋友", "hao朋友",1)
MsgBox(0, "StringCompare Result (例子1):", $Var)

$Var= StringCompare("HAO朋友嘛", "hao朋友",2)
MsgBox(0, "StringCompare Result (例子2):", $Var)
运行上述代码后,结果是  例子0=0  例子1=-1 例子2=1
我们可以从帮助上看到解释:
0 表示字符串1与字符串2 相等 ;<0 表示字符串1  小于  字符串2;>0 表示  字符串1 包含 字符串2  
这里特别要注意  0与 2   多次测试结果基本相同,知道是不是BUG….. 同时也看到“《Let's AutoIt》自空AU3零起步教程 AutoIt”的解释也不同 真不明白“可以规定只替换其中几个(以偶的理解:是不是调用此函数时,实际情况是这样的)”是什么得出的!
15、StringInStr
语法:StringInStr ( "字符串", "子字符串" [, 区分大小写 [, 出现次序 [, 开始 [, 数量]]]] )
作用:检查某个字符串是否含有给定的子串. 注:这篇文章内,查找出这段相同的内容!!
例子:
Dim $Var=StringInStr("abcdabcdabcd","d",0,2,6,8)
MsgBox(0, "StringInStr:", $Var)  ;例子1

$a = StringInStr("abcdabcdabcd", "d")
MsgBox(0, "StringInStr:", $a)   ;例子2
举了两个例子,例子1是全面的参数,搜索范围空间比较窄。 从“abcdabcdabcd”里搜索“d”,按照大小写(大小写的区分,请参照14项内容)2表示第二次出现时,开始从第6个字符串查找(这里规定了查找的范围),8或12 都可以  (注:这里的数量是要比较的数量)
运行结果是12 为什么是12呢!答案就是出现次序上!!
例子2 结果是4  不明白之处请参照AU3 帮助,有详细的参数说明!!!
16、StringIsAlNum
   语法:StringIsAlNum ( "字符串" )
   作用:检查某个字符串是否仅含有字母或数字(文字数字式字符).注:是返回1 ,否返回0,说明字符串含有非文字数字字符.
例子:
$a = "abcd123"
MsgBox(0, "StringIsAlNum:", StringIsAlNum($a)) ;是
    
$a = "abcd123@"
MsgBox(0, "StringIsAlNum:", StringIsAlNum($a)) ;否
注:从这里开始,针对后面StringIs… 例子不再一一列举!!!  例子基本跟16  例子差不多!!!
17、StringIsAlpha
   语法:StringIsAlpha ( "字符串" )
   作用:检查某个字符串是否仅含有字母(文字字符). 注:是返回1 ,否返回0,说明字符串含有非字母字符.
18、StringIsASCII
   语法:StringIsASCII ( "字符串" )
   作用:检查某个字符串是否仅含有ASCII码值介于 0x00 到 0x7f (0-127)之间的字符. 注:注:是返回1 ,否返回0,说明给定的字符串含有扩展的 ASCII 字符.  不懂  “ASCII”是什么,请百度自个搜!!!
19、StringIsDigit
   语法:StringIsDigit ( "字符串" )
   作用:检查某个字符串是否仅含有数字(0-9)字符. 注:是返回1 ,否返回0,说明给定的字符串含有非数字字符.
20、StringIsFloat
    语法:StringIsFloat ( "字符串" )
    作用:检查某个字符串是否为浮点数. 注:是返回1 ,否返回0,说明给定的字符串并非浮点数格式.
   这里要注意的是:一个字符串(被认为)是浮点数仅当其含有至少一个十进制数和只有一个小数点;其它字符可以是在开头的加号或减号.StringIsFloat 不接受逗号作为小数点,即使是电脑的区域设置中已设置使用该符号.若给定的参数并非字符串则它先被转成字符串,请查看例子.(还是帮助里全,不编辑了 这里看“表达式”)
 StringIsFloat(“1.5”);返回1
StringIsFloat(“7.”);返回1,因为包含小数
StringIsFloat(“-. 0”);返回1
StringIsFloat(“3 / 4”);返回0,因为'3'斜线'4'是不是浮动
StringIsFloat(“2”);返回0,因为'2'是一个整数,而不是浮动

StringIsFloat(1.5);返回1,因为1.5转换为字符串包含。
StringIsFloat(1.0);返回0,因为1.0转换成字符串不包含。
21、StringIsInt
      语法:StringIsInt ( "字符串" )
      作用:检查某个字符串是否整型数. 注:是返回1 ,否返回0,说明给定的字符串不是一个整数.
   这里要注意的是:StringIsInt 对非字符串的整数表达式也返回 1.但是,如果是十六进制的表达式如 "4ff0" 等则 StringIsInt 的返回值为0.字符串中唯一允许含有的标点符号是在开头(首字符)的加号或减号.(这里看结果)
StringIsInt(“42”);返回1
StringIsInt(“-00”);返回1
StringIsInt(“1.0”);返回0,由于小数点
StringIsInt(1.0);返回1,由于一些字符串的转换
StringIsInt(“1 +2”);返回0,由于加号

22、StringIsLower

    语法:StringIsLower ( "字符串" )
    作用:检查某个字符串是否仅含有小写字母. 注:是返回1 ,否返回0,说明给定的字符串含有非小写字母. 只要字符串中含有数字,标点符号,空白符则 StringIsLower 将返回0.
23、StringIsSpace
   语法:StringIsSpace ( "字符串" )
   作用:检查某个字符串是否仅含有"空白符".  注:是返回1 ,否返回0,说明给定的字符串包含了非空白符.  所谓空白符是指从 Chr(9) 到 Chr(13) 的所有字符,包括水平制表符,换行符,垂直制表符,进纸符以及回车符.           空白符还包括空字符串(Chr(0))和标准空格符(Chr(32)).
24、StringIsXDigit
   语法:StringIsXDigit ( "字符串" )
   作用:检查某个字符串是否仅含有十六进制字符(0-9, A-F).  注:是返回1 ,否返回0,说明给定的字符串中含有非十六进制字符.   有效的十六进制字符包括 0123456789abcdefABCDEF,若给定的字符串中含有空白符或 "0x" 前缀都将导致
StringIsXDigit 返回0.
StringIsXDigit("00FC")    ; 返回1
StringIsXDigit("2570")    ; 返回1
StringIsXDigit("a cafe")   ; 返回0,a cafe
StringIsXDigit(1 + 2.0)    ; 返回1,由于一些字符串的转换
看完之后,也会发现在一个规律!!!!!同时也是如何学习AU3帮助的学习方法!!!!

评分

参与人数 1金钱 +30 贡献 +2 收起 理由
afan + 30 + 2

查看全部评分

发表于 2010-1-31 13:22:53 | 显示全部楼层
不错 要顶!呵呵 谢谢
发表于 2010-1-31 13:58:19 | 显示全部楼层
强帖啊,应该收录Let's AutoIt里。
发表于 2010-1-31 19:29:50 | 显示全部楼层
有心人
发表于 2010-2-3 14:06:30 | 显示全部楼层
这个一定要好好学习~
发表于 2010-2-6 22:51:21 | 显示全部楼层
let‘s goto  autoit 是个很好滴教程
发表于 2010-2-25 16:25:43 | 显示全部楼层
新手学习下
发表于 2010-3-22 19:45:29 | 显示全部楼层
有哪位将这个内容收进Let's AutoIt里面去,那就太感激了。
发表于 2010-3-24 16:33:13 | 显示全部楼层
let‘s goto  autoit 是个很好滴教程
发表于 2010-3-25 09:57:51 | 显示全部楼层
谢谢分享~!
发表于 2010-4-2 10:42:46 | 显示全部楼层
有哪位大虾知道哪里有<<Let's AutoIt>>的第二部分?
发表于 2010-4-2 14:02:10 | 显示全部楼层
好贴!大力支持!
发表于 2010-4-9 13:59:51 | 显示全部楼层
路过帮顶路过帮顶
发表于 2010-6-9 09:09:55 | 显示全部楼层
不错 要顶!
发表于 2011-1-1 22:22:28 | 显示全部楼层
谢谢共享!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-5 02:47 , Processed in 0.085205 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表