找回密码
 加入
搜索
楼主: haebong87

[AU3基础] [已解决] 求关注!提示下标用于非数组变量,该怎么解决。

 火.. [复制链接]
 楼主| 发表于 2011-7-13 17:04:58 | 显示全部楼层
本帖最后由 haebong87 于 2011-7-13 17:06 编辑

$nums[0] = $nums1[0] 也出错,是什么问题呢?

我的目的就是$nums[1] = $nums1[1] 做第二个数字来对比的。

而且目前提示这个: Subscript used with non-Array variable.:
 楼主| 发表于 2011-7-13 17:16:39 | 显示全部楼层
回复 15# love5173

谢谢,我这就去试一试看看。
发表于 2011-7-13 17:19:58 | 显示全部楼层
回复 16# haebong87
天啊,你原来不是说要的是水果后面的第一个数字吗,怎么成第二个了,另外你$n哪里来的
试试这个
$file = fileopen("test.txt",0)
dim $n=1
$str = filereadline($file,$n)
$nums=stringregexp($str,'.+?\|\d+\|(\d+)',3)
$nums1=stringregexp(filereadline($file,$n+1),'.+?\|\d+\|(\d+)',3)
If $nums[1] <> $nums1[1] then
msgbox(0,"Test","false")
elseif $nums[1] = $nums1[1] then
msgbox(0,"Test","Ture")
endif
 楼主| 发表于 2011-7-13 17:22:58 | 显示全部楼层
好吧,我还是把这个搞不定的部分发给你吧。
你帮我查看一下,这是我刚刚按你说的修改了的。
Func main()
        
        $file = FileOpen("item_tc.txt", 0)
        While 1
                $line = FileReadLine($file)
                If @error = -1 Then ExitLoop
                If $count = 0 Then
                        $count = 1
                        ContinueLoop
                EndIf
                $item_id_array = StringSplit($line, '|',2)
                If $item_id_array[1] = 1 Then  
                        $make_type_id=$make_type1
                        $make_tool_x=30337
                        $make_tool_y=243
                        $make_tool_z=36417
                ElseIf $item_id_array[1] = 2 Then
                        $make_type_id=$make_type2
                        $make_tool_x=35899
                        $make_tool_y=293
                        $make_tool_z=36235
                ElseIf $item_id_array[1] = 3 Then
                        $make_type_id=$make_type3
                        $make_tool_x=30175
                        $make_tool_y=244
                        $make_tool_z=33449
                ElseIf $item_id_array[1] = 4 Then
                        $make_type_id=$make_type4
                        $make_tool_x=34220
                        $make_tool_y=246
                        $make_tool_z=33339
                ElseIf $item_id_array[1] = 5 Then
                        $make_type_id=$make_type5
                        $make_tool_x=35875
                        $make_tool_y=243
                        $make_tool_z=36853
                EndIf
                
                for $i=0 to UBound($item_id_array)-1   ;~ 这里开始
                        If $item_id_array <> $item_id_array[$I+1] Then

                        Send("/")
                        Sleep(500)
                        Send("admin")  
                        Send("{enter}")
                        Send("{down 34}")
                        Send("{tab 2}")
                        Send($make_type_id)
                        Send("{enter}")
                        Sleep(1000)
                        Send("{tab 14}")
                        Sleep(500)
                        Send("{up}")
                        Sleep(500)
                        Send("{tab 2}")
                        Send("10")
                        Sleep(1000)
                        Send("{enter 8}")
                        WinActivate("Admin Tool","")
                        Send("!{F4}")
                        Sleep(1000)
                        Send("{enter}")
                        Sleep(1000)
                        Send("/")
                        Sleep(500)
                        Send("admin")
                        Send("{enter}")
                        Sleep(1000)
                        Send("{down 31}")
                        Sleep(1000)
                        Send("{tab 2}")
                        Send($make_tool_x)
                        Send("{tab}")
                        Send($make_tool_y)
                        Send("{tab}")
                        Send($make_tool_z)
                        Send("{enter}")
                        Sleep(1000)
                        WinActivate("Admin Tool","")
                        Send("!{f4}")
                Else $item_id_array = $item_id_array[$I+1] Then
                        Next
                                                
                        admin_tool($item_gold_id,$item_id_array[5])
                        $length = UBound($item_id_array)/7
                For $i = 0 To $length - 1
                        admin_tool($item_id_array[3+7*$i],$item_id_array[4+7*$i])
                Next
                win_make()
                Sleep(1000)
                
                If $item_id_array[2] = 2 Then
                        MouseClick("left","180","340")
                        MouseClick("left","150","380")
                ElseIf $item_id_array[2] = 3 Then
                        MouseClick("left","180","340")
                        MouseClick("left","150","400")
                ElseIf $item_id_array[2] = 4 Then
                        MouseClick("left","180","340")
                        MouseClick("left","150","420")
                EndIf
                If $item_id_array[6] = 1 Then
                        item_make($item_make_y1)
                ElseIf $item_id_array[6] = 2 Then
                        item_make($item_make_y2)
                ElseIf $item_id_array[6] = 3 Then
                        item_make($item_make_y3)
                ElseIf $item_id_array[6] = 4 Then
                        item_make($item_make_y4)        
                ElseIf $item_id_array[6] = 5 Then
                        item_make($item_make_y5)        
                ElseIf $item_id_array[6] = 6 Then
                        item_make($item_make_y6)
                ElseIf $item_id_array[6] = 7 Then
                        item_make($item_make_y7)        
                ElseIf $item_id_array[6] = 8 Then
                        MouseClick("left","668","580")
                        item_make($item_make_y8)        
;~                         MouseClick("left","668","237")
                ElseIf $item_id_array[6] = 9 Then
                        MouseClick("left","668","580")
                        Sleep(200)
                        MouseClick("left","668","580")
                        item_make($item_make_y9)
;~                         MouseClick("left","668","605","2")
                EndIf
        Wend
        
EndFunc
 楼主| 发表于 2011-7-13 17:24:17 | 显示全部楼层
本帖最后由 haebong87 于 2011-7-13 17:25 编辑

回复 18# love5173


    哦哦,对对,是水果后面的第一个数字。是我上面说错了。但是按你发的那些试用了一下还是Error啊。 哎,真头疼。
 楼主| 发表于 2011-7-13 17:27:15 | 显示全部楼层
那个是不是太长了,我怕你眼睛过于疲劳不回答我了所以没发这么长的。
 楼主| 发表于 2011-7-13 17:40:34 | 显示全部楼层
美女能留给我一个QQ么? 用QQ聊会更方便一些。
发表于 2011-7-13 19:05:35 | 显示全部楼层
回复 22# haebong87
谁告诉你5173是女孩了
发表于 2011-7-13 19:10:05 | 显示全部楼层
学习学习!
 楼主| 发表于 2011-7-13 20:12:05 | 显示全部楼层
回复 23# netegg


    看图像,随口说出来的。 = =;
发表于 2011-7-13 21:05:50 | 显示全部楼层
回复 25# haebong87


   
发表于 2011-7-13 22:09:30 | 显示全部楼层
回复 18# love5173


    你很漂亮,能否给个Q号?
 楼主| 发表于 2011-7-14 09:23:52 | 显示全部楼层
回复 27# hzxymkb


    版主,能解释一下上面的运行之后提示这个Subscript used with non-Array variable.:应该怎么解决么?
 楼主| 发表于 2011-7-14 09:27:51 | 显示全部楼层
$file = fileopen("test.txt",0)
dim $n=1
$str = filereadline($file,$n)
$nums=stringregexp($str,'.+?\|\d+\|(\d+)',3)
$nums1=stringregexp(filereadline($file,$n+1),'.+?\|\d+\|(\d+)',3)
$result = StringCompare($nums[1],$nums1[1])
If $result=0then
msgbox(0,"Test","false")
elseif $result <>0  then
msgbox(0,"Test","Ture")
endif
现在我给改成这样了。
 楼主| 发表于 2011-7-14 09:51:05 | 显示全部楼层
本帖最后由 haebong87 于 2011-7-14 10:15 编辑

发现了一个问题,我的29楼帖子第5行中给$N那部分换成数字就可以正常运行。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-1 23:40 , Processed in 0.071480 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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