求助,创建一个图形输出所要查找的内容
本帖最后由 surongfu 于 2012-6-26 08:31 编辑怎么创建一个gui 来读取以下文本内容
sfsdfdffddddf65465ad Password:1751 CardNo:15234123
sfsdfdffddddf65465ad Password:1752CardNo:15234124
sfsdfdffddddf65465ad Password:1753CardNo:15234125
sfsdfdffddddf65465ad Password:1754CardNo:15234126
假如绘制一个gui图形,在输入框输入15234123则显示1751,输入15234124则显示1752
假设文本路径为d:\sy.txt IniRead
If...Then
菜鸟表示大概要用到这两个... 前面的“sfsdfdffddddf”有嘛用呢?先按你说的“假如绘制一个gui图形,在输入框输入15234123则显1751,输入15234124则显示1752,假设文本路径为d:\sy.txt ”来写代码,还有啥问题回复我。
txt中写:
pwd=1751
pwd=1752
pwd=1753
pwd=1754代码:(还可以写成INPUTBOX形式,需要的话回复我)
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 354, 94, 192, 124)
$Label1 = GUICtrlCreateLabel("请输入帐号:", 8, 8, 92, 17)
$Input1 = GUICtrlCreateInput("", 104, 8, 241, 21)
$Label2 = GUICtrlCreateLabel("你的密码是:", 8, 32, 92, 17)
$Input2 = GUICtrlCreateInput("输入后才可以获取哦!", 104, 32, 241, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button1 = GUICtrlCreateButton("获取", 256, 56, 89, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetData($Input2,IniRead("d:\sy.txt",GuiCtrlRead($Input1),"pwd","输入错误"))
EndSwitch
WEnd
前面的“sfsdfdffddddf”有嘛用呢?先按你说的“假如绘制一个gui图形,在输入框输入15234123则显1751,输入1 ...
Windows8 发表于 2012-6-23 18:27 http://www.autoitx.com/images/common/back.gif
那是日记文件日记记录格式就是那样的不能像这样
pwd=1751
pwd=1752
pwd=1753
pwd=1754 本帖最后由 surongfu 于 2012-6-24 08:59 编辑
我自己弄了个简洁的但是没有gui好可以复制我的没法复制$a = InputBox(0,"输入号码按确定")
$b = FileRead(".\xxj_wyj_" & @year & "-" & @mon & "-" & @MDAY & ".log")
$c = StringRegExp($b,'CardNo:'&$a&', Password:(.*?), PasswordVerify',3)
MsgBox(0,"密码是",$c)
而且不输入直接关掉会提示错误,找不到也会提示错误 本帖最后由 shqf 于 2012-6-24 10:02 编辑
在3楼代码的基础上修改,log内容如你一楼所列的格式
Case $Button1
$str = FileRead("xxj_wyj_" & @year & "-" & @mon & "-" & @MDAY & ".log")
If StringRegExp(GUICtrlRead($Input1), "\d+", 0) Then
$array = StringRegExp($str, "pwd:(\d+)\h+" & GUICtrlRead($Input1), 3)
If @error Then
GUICtrlSetData($Input2, "没有对应的密码")
Else
GUICtrlSetData($Input2, $array)
EndIf
EndIf 在3楼代码的基础上修改,log内容如你一楼所列的格式
shqf 发表于 2012-6-24 10:01 http://www.autoitx.com/images/common/back.gif
代码不能运行呀 本帖最后由 shqf 于 2012-6-24 14:06 编辑
其实3楼的代码加上你自己5 楼的代码可以解决你的问题了。你已经不缺解决这个问题的au3知识了,缺的是尝试、仔细。
“不能运行”就要关注程序运行的情况,报的是哪一句出错?什么类型的错?
加上调试语句,一步步跟踪程序。打开日志文件是否正常?正则匹配结果如何?... 自己创建个form,把7楼的代码放进去就差不多了 7楼的代码查找不到密码不知道怎么回事 回复 7# shqf
可能是我文本内容提供有误,现已经重新更新文本内容 你试试用你提供的测试数据构成文件,再运行提供的代码。我在论坛提供的代码都是试过成功后再上传的。
你不成功,估计是你的原数据文件格式有特殊性,与你提供的测试数据有异。如你把原数据文件的一部分贴出来,你的问题应该早解决了。 本帖最后由 surongfu 于 2012-6-26 10:55 编辑
如果能把我这个代码整到gui里就可以查出来,昨晚试了一夜还是没整进去$a = InputBox(0,"输入号码按确定")
$b = FileRead(".\xxj_wyj_" & @year & "-" & @mon & "-" & @MDAY & ".log")
$c = StringRegExp($b,'CardNo:'&$a&', Password:(.*?), PasswordVerify',3)
MsgBox(0,"密码是",$c)不知道我这样理解对不对,执行 $Button1 按钮时执行$B+$A然后在输出显示
$c应该就是$Input2要显示的内容 楼上的,你的正则里有“PasswordVerify”字样,且“CardNo”在“ Password”的前面,而1 楼的现在给出的文件中的数据不是这样的,没有“PasswordVerify”,“CardNo”也在“ Password”的后面,你的代码不可能成功运行的。
根据你现在给出的1楼数据,7楼代码第4 句改成如下:$array = StringRegExp($str, "Password:(\d+)\h+" & "CardNo:"&GUICtrlRead($Input1), 3)就能成功。
页:
[1]
2