文件读取失败
下面是代码,大家看看问题出在哪里啊#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()
另外这个按钮是文件有多少行,就有多少按钮,点击按钮应该要键入按钮标签的内容,怎么来实现 回复 1# rtytext
请上传你的附件Test.txt及你所要用AU3做的事情表达清楚。这要莫头莫尾的谁帮你?? 还有,你用了Opt("GUICoordMode", $i) ;作用是修改 GUICtrlSetPos 定义的控件位置.
你要调整控件在窗口中的位置和(或)大小??这个控件又是指的那个控件
所以很多问题,请附上源代码和附件。 本帖最后由 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
test.txt65656566
%1%12%134%12
134%13%413%4
134%13%413%
13%413%134
前来学习。。。。。。。。。。。。。。。 回复 5# dunphy
你可真够耐心。 FileOpen($Txt)
wrong number
检查下txt文件。
页:
[1]