找回密码
 加入
搜索
查看: 2657|回复: 6

[AU3基础] 字符串提取问题,急用!

  [复制链接]
发表于 2011-7-9 17:32:25 | 显示全部楼层 |阅读模式
因为本人在研究部署界面,需要读取到配置文件中的软件的名称,本人正则一窍不通,望哪位达人告知一下怎么提取如下项目所示的 "EasyDrv3.5.exe" 这些应用程序的名称呢??

[DeploySet]
1=|1|Exe|C:\Sysprep\EasyDrv3.5.exe|||4|4|4||
2=|5|Exe|C:\WINDOWS\智能驱动删除询问v2.0.2.exe|||4|4|4||
3=|5|Exe|C:\WINDOWS\ip地址修改器.exe|||4|1|4||
4=|5|Exe|C:\Soft\Softprep.exe|||4|1|4||

谢谢~~~
发表于 2011-7-9 17:37:03 | 显示全部楼层
读取配置文件 例如
1=|1|Exe|C:\Sysprep\EasyDrv3.5.exe|||4|4|4||
读取后利用字符串分割  分割符号为“|” 就能得到你想要的字符串
发表于 2011-7-9 17:53:53 | 显示全部楼层
$array=StringRegExp($str,':.*\\([^\|]+)',3)
发表于 2011-7-9 20:15:53 | 显示全部楼层
我不会正则
就用这个吧
StringSplit
--------------------------------------------------------------------------------

以指定分隔符把字符串拆分成若干子串.


StringSplit ( "字符串", "分隔符" [, 标志 ] )




参数

字符串 目标字符串.
分隔符 一个或多个作为分隔符的字符(case sensitive).  
标志 [可选参数]
  若标志为0(默认值),则(分隔符)字符串中的每个字符都将用于拆分字符串.
  若标志为1,则只能以整个分隔符字符串来拆分字符串.
  若标志为2,关闭第一个元素中的返回数量 - 方便使用 UBound() 得到此基于0开始的数组.



返回值

返回值 返回一个数组,第一个元素($array[0])保存拆分后子串的数量,其余元素($array[1],$array[2] 等等)则保存着拆分后的每个字符串.
若(在目标字符串中)未发现分隔符则 @error 将被设为1,子串数量($array[0])等于1,而函数将返回整个字符串($array[1]).



注意/说明

若给定的分隔符是个空字符串 "",则每个字符将作为数组元素返回.

若分隔符是子串而不是单个字符,请参考下面的第二个示例.

StringSplit 有时候可以作为代替 StringInStr() 函数的更好选择,因为它可以组建数组.

小心:如果您使用宏 @CRLF ,可能会出现额外的空白行.
发表于 2011-7-10 00:58:24 | 显示全部楼层
我的建议是自己多试试用 stringsplit
别人帮得了你一时,帮不了一世,既然你学AU3,就要自己学会多看帮助!
其实这是比较基础的东西了
发表于 2011-7-10 01:02:12 | 显示全部楼层
stringsplit 虽然简单,但au3对数组处理得不是很好,若是数组大点,速度明显慢

还是用正则好
 楼主| 发表于 2011-7-10 01:23:00 | 显示全部楼层
回复 2# zmj2008


  谢谢你的提醒~~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 04:33 , Processed in 0.074816 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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