找回密码
 加入
搜索
查看: 6202|回复: 7

[GUI管理] 文件读取失败

  [复制链接]
发表于 2014-10-27 23:01:34 | 显示全部楼层 |阅读模式
下面是代码,大家看看问题出在哪里啊
#Include <File.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


Dim $Txt,$Open,$Close,$LineCount,$String,$SSplit,$StringE,$msg,$Button[64]

GUICreate("资料专用",400,300) ; 创建一个居中显示的 GUI 窗口



$Txt = @ScriptDir&"\test.txt"

$LineCount = _FileCountLines($Txt)
If @error Or $LineCount = 0 Then Exit

$Open = FileOpen($Txt)
For $i = 1 To $LineCount
        $String = FileReadLine($Open,$i)
        If @error Then ExitLoop
        $SSplit = StringSplit($String,"%")
                ;MsgBox(0,"Error","行未发现分隔符"
        If @error Then
                MsgBox(0,"Error","行"&$i&"未发现分隔符")
        Else
                $StringEx = ""
                For $Ele In $SSplit
                        $StringEx = $StringEx&$Ele&@CRLF
                                                MsgBox(0,"Error","行"&$StringEx&"未发现分隔符")
                Next
                                $Button[$i]=GUICtrlCreateButton($StringEx,0, $i*30-29, 400,30)
        EndIf
       
Next        
FileClose($Open)

Opt("GUICoordMode", $i)

GUISetState(@SW_SHOW) ; 显示一个空白的窗口
    While 1
                 $msg = GUIGetMsg()
                        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $Button[1]
               MsgBox(0, '测试', '你点击了测试按钮1')    ; 点击按钮 2 显示一个简单的对话框
                        Case $msg = $Button[2]
               MsgBox(0, '测试', '你点击了测试按钮2')
                        Case $msg = $Button[3]
               MsgBox(0, '测试', '你点击了测试按钮3')
                        Case $msg = $Button[4]
               MsgBox(0, '测试', '你点击了测试按钮4')
                        Case $msg = $Button[5]
               MsgBox(0, '测试', '你点击了测试按钮5')
                        Case $msg = $Button[6]
               MsgBox(0, '测试', '你点击了测试按钮6')
                        Case $msg = $Button[7]
               MsgBox(0, '测试', '你点击了测试按钮7')
                        Case $msg = $Button[8]
               MsgBox(0, '测试', '你点击了测试按钮8')
                        ;Case $msg = $Button[9]
               ;MsgBox(0, '测试', '你点击了测试按钮9')
                        ;Case $msg = $Button[10]
              ; MsgBox(0, '测试', '你点击了测试按钮10')
                        ;Case $msg = $Button[11]
               ;MsgBox(0, '测试', '你点击了测试按钮11')
        EndSelect

    WEnd
GUIDelete()

另外这个按钮是文件有多少行,就有多少按钮,点击按钮应该要键入按钮标签的内容,怎么来实现

本帖子中包含更多资源

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

×
发表于 2014-10-29 16:45:47 | 显示全部楼层
回复 1# rtytext


    请上传你的附件Test.txt及你所要用AU3做的事情表达清楚。这要莫头莫尾的谁帮你??
发表于 2014-10-29 16:49:19 | 显示全部楼层
还有,你用了Opt("GUICoordMode", $i)     ;作用是修改 GUICtrlSetPos 定义的控件位置.

你要调整控件在窗口中的位置和(或)大小??这个控件又是指的那个控件
所以很多问题,请附上源代码和附件。
发表于 2014-10-29 16:53:07 | 显示全部楼层
本帖最后由 dunphy 于 2014-10-29 16:55 编辑

我临时的改了一下,后面的还没弄完。要看你所要表达的意思。
#include <array.au3>
HotKeySet("{ESC}", "HotKeyPressed")

GUICreate("资料专用", 400, 300) ; 创建一个居中显示的 GUI 窗口

Local $Txt = @ScriptDir & "\test.txt"
Local $Open = FileOpen($Txt) ;返回文件句柄
If $Open = -1 Then
        MsgBox(0, "提示", "没有找到文件")
EndIf
Local $a_file = FileReadToArray($Open)
If @error = 2 Then
        MsgBox(0, "提示", "打开了一个空文件")
EndIf

_ArrayDisplay($a_file, "")
GUISetState(@SW_SHOW) ; 显示一个空白的窗口
Local $i
For $i = 0 To UBound($a_file) - 1
        Local $SSplit = StringSplit($a_file[$i], "%")
        If @error = 1 Then
                MsgBox(0, "Error", "行" & $i & "未发现分隔符")
        Else
                
        EndIf
        
Next


Func HotKeyPressed()
        Switch @HotKeyPressed ; 最后按下的热键.
                Case "{ESC}" ; {ESC} 是"退出"热键.
                        Exit
        EndSwitch
EndFunc   ;==>HotKeyPressed
发表于 2014-10-29 16:53:27 | 显示全部楼层
test.txt
65656566
%1%12%134%12
134%13%413%4
134%13%413%
13%413%134
发表于 2014-11-5 20:56:48 | 显示全部楼层
前来学习。。。。。。。。。。。。。。。
发表于 2014-11-5 21:46:17 | 显示全部楼层
回复 5# dunphy


    你可真够耐心。
发表于 2014-11-6 12:07:26 | 显示全部楼层
FileOpen($Txt)
wrong number
检查下txt文件。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-25 03:52 , Processed in 0.092405 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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