找回密码
 加入
搜索
查看: 2465|回复: 4

[AU3基础] 请问一下数组取值问题

  [复制链接]
发表于 2017-9-25 18:10:37 | 显示全部楼层 |阅读模式
本帖最后由 mqqep 于 2017-9-25 18:34 编辑

Speed: 4301 h/s, Total Shares: 17, Rejected: 0, Mining time: 00:05
ddddddddddxxxxxxxxxxxxxxxxx
Speed: 4311 h/s, Total Shares: 17, Rejected: 0, Mining time: 00:10
aaaaaaaaaaaaaaaaaaaaaaa
Speed: 4301 h/s, Total Shares: 17, Rejected: 0, Mining time: 00:05
xxxxxxxxxxxxxxxxxxxxxxxxxxx
ddddddddddddfaaaaaaaaaaaaaaadfdsa
Speed: 4321 h/s, Total Shares: 17, Rejected: 0, Mining time: 00:55
fddddddddddddddddddddddddddddd
a46666666666666666664545454
5445544444444444444
Speed: 4333 h/s, Total Shares: 17, Rejected: 0, Mining time: 01:11
fddddddddddddddddddddddddddddddddddddd
........
以上文本每隔一段时间就变化出现的行数,目前举例是5行,有时候5行,6行不等。

$aArray = StringRegExp($line, 'Speed:\s(\d+)\s',3)
        $aArray1 = StringRegExp($line, 'time:\s(\d+\D\d+)',3 )
                Sleep(100)
          For $i = 0 To UBound($aArray) - 1
                          For $ii =0 to UBound($aArray1) - 1
                GUICtrlSetData($myedit,$aArray1[$ii]&$aArray[$i] &"h/s",-1)

循环执行以上代码,因为$line是每隔一段时间变动一次的,所以 UBound($aArray)  UBound($aArray1) 每次得到的行数都不一样,比如得到7行时,我只想得到第7行的time 和speed
就是每次得到最后一行的time和speed,上面的写法是得到全部了,请问该怎么写变量
发表于 2017-9-25 20:51:31 | 显示全部楼层
本帖最后由 zghwelcome 于 2017-9-25 22:18 编辑
$aArray = StringRegExp($line, '(?si)Speed:\s*(\d+)\V+?time:\s*(\d+\D\d+)(?!.*?Speed:)', 1)
If Not @error Then GUICtrlSetData($myedit, $aArray[1] & ' ' & $aArray[0] & "h/s", -1)
发表于 2017-9-25 22:01:18 | 显示全部楼层
本帖最后由 yamakawa 于 2017-9-25 22:10 编辑

回复 1# mqqep


    暂时没头绪,想不出合适的正则。。但是你这情况很好搞定啊。。。因为不管是多少行,最后一行在数组中的序号一定是
UBound($aArray) - 1
所以我的临时办法是
Speed:\s*(\d+).*?time:\s*(\V+)
然后取值的时候
 GUICtrlSetData($myedit,"用时 " & $aArray[UBound($aArray) - 1] & "  速度 " &  $aArray[UBound($aArray) - 2],-1)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1威望 +10 金钱 +100 贡献 +10 收起 理由
afan + 10 + 100 + 10 热心 小计补分

查看全部评分

发表于 2017-9-25 22:02:16 | 显示全部楼层
本帖最后由 yamakawa 于 2017-9-27 20:47 编辑

另外,,实测,2楼的不行

2楼的也可以,,之前没注意用的参数是 1.。抱歉
发表于 2017-9-27 20:44:34 | 显示全部楼层
回复 1# mqqep


    今天闲的蛋疼,又看了下你这帖子。。。
   试试
(?s).+Speed:\s*(\d+).*?time:\s*(\V+)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 14:35 , Processed in 0.075760 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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