rtytext 发表于 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

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
               MsgBox(0, '测试', '你点击了测试按钮1')    ; 点击按钮 2 显示一个简单的对话框
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮2')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮3')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮4')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮5')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮6')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮7')
                        Case $msg = $Button
               MsgBox(0, '测试', '你点击了测试按钮8')
                        ;Case $msg = $Button
               ;MsgBox(0, '测试', '你点击了测试按钮9')
                        ;Case $msg = $Button
            ; MsgBox(0, '测试', '你点击了测试按钮10')
                        ;Case $msg = $Button
               ;MsgBox(0, '测试', '你点击了测试按钮11')
      EndSelect

    WEnd
GUIDelete()

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

dunphy 发表于 2014-10-29 16:45:47

回复 1# rtytext


    请上传你的附件Test.txt及你所要用AU3做的事情表达清楚。这要莫头莫尾的谁帮你??

dunphy 发表于 2014-10-29 16:49:19

还有,你用了Opt("GUICoordMode", $i)   ;作用是修改 GUICtrlSetPos 定义的控件位置.

你要调整控件在窗口中的位置和(或)大小??这个控件又是指的那个控件
所以很多问题,请附上源代码和附件。

dunphy 发表于 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

dunphy 发表于 2014-10-29 16:53:27

test.txt65656566
%1%12%134%12
134%13%413%4
134%13%413%
13%413%134

wangms 发表于 2014-11-5 20:56:48

前来学习。。。。。。。。。。。。。。。

MicroBlue 发表于 2014-11-5 21:46:17

回复 5# dunphy


    你可真够耐心。

Authree 发表于 2014-11-6 12:07:26

FileOpen($Txt)
wrong number
检查下txt文件。
页: [1]
查看完整版本: 文件读取失败