找回密码
 加入
搜索
查看: 8806|回复: 19

[系统综合] 求助,创建一个图形输出所要查找的内容

 火.. [复制链接]
发表于 2012-6-23 11:19:50 | 显示全部楼层 |阅读模式
本帖最后由 surongfu 于 2012-6-26 08:31 编辑

怎么创建一个gui 来读取以下文本内容

sfsdfdffddddf  65465ad Password:1751 CardNo:15234123
sfsdfdffddddf  65465ad Password:1752  CardNo:15234124
sfsdfdffddddf  65465ad Password:1753  CardNo:15234125
sfsdfdffddddf  65465ad Password:1754  CardNo:15234126
假如绘制一个gui图形,在输入框输入15234123则显示1751,输入15234124则显示1752
假设文本路径为d:\sy.txt
发表于 2012-6-23 12:53:26 | 显示全部楼层
IniRead
If...Then

菜鸟表示大概要用到这两个...
发表于 2012-6-23 18:27:43 | 显示全部楼层
前面的“sfsdfdffddddf”有嘛用呢?先按你说的“假如绘制一个gui图形,在输入框输入15234123则显1751,输入15234124则显示1752,假设文本路径为d:\sy.txt ”来写代码,还有啥问题回复我。
txt中写:
[15234123]
pwd=1751
[15234124]
pwd=1752
[15234125]
pwd=1753
[15234126]
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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-6-24 08:56:17 | 显示全部楼层
前面的“sfsdfdffddddf”有嘛用呢?先按你说的“假如绘制一个gui图形,在输入框输入15234123则显1751,输入1 ...
Windows8 发表于 2012-6-23 18:27



    那是日记文件日记记录格式就是那样的不能像这样
[15234123]
pwd=1751
[15234124]
pwd=1752
[15234125]
pwd=1753
[15234126]
pwd=1754
 楼主| 发表于 2012-6-24 08:58:53 | 显示全部楼层
本帖最后由 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[0])
 楼主| 发表于 2012-6-24 08:59:36 | 显示全部楼层
而且不输入直接关掉会提示错误,找不到也会提示错误
发表于 2012-6-24 10:01:46 | 显示全部楼层
本帖最后由 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[0])
                EndIf
        EndIf
 楼主| 发表于 2012-6-24 13:54:19 | 显示全部楼层
在3楼代码的基础上修改,log内容如你一楼所列的格式
shqf 发表于 2012-6-24 10:01



    代码不能运行呀
发表于 2012-6-24 14:03:06 | 显示全部楼层
本帖最后由 shqf 于 2012-6-24 14:06 编辑

其实3楼的代码加上你自己5 楼的代码可以解决你的问题了。你已经不缺解决这个问题的au3知识了,缺的是尝试、仔细。
“不能运行”就要关注程序运行的情况,报的是哪一句出错?什么类型的错?
加上调试语句,一步步跟踪程序。打开日志文件是否正常?正则匹配结果如何?...

评分

参与人数 1威望 +1 金钱 +20 收起 理由
afan + 1 + 20

查看全部评分

发表于 2012-6-24 21:42:01 | 显示全部楼层
自己创建个form,把7楼的代码放进去就差不多了
 楼主| 发表于 2012-6-26 08:18:04 | 显示全部楼层
7楼的代码查找不到密码不知道怎么回事
 楼主| 发表于 2012-6-26 08:32:55 | 显示全部楼层
回复 7# shqf



可能是我文本内容提供有误,现已经重新更新文本内容
发表于 2012-6-26 08:34:36 | 显示全部楼层
你试试用你提供的测试数据构成文件,再运行提供的代码。我在论坛提供的代码都是试过成功后再上传的。
你不成功,估计是你的原数据文件格式有特殊性,与你提供的测试数据有异。如你把原数据文件的一部分贴出来,你的问题应该早解决了。
 楼主| 发表于 2012-6-26 10:46:54 | 显示全部楼层
本帖最后由 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[0])
不知道我这样理解对不对,执行 $Button1 按钮时执行$B+$A然后在输出显示
$c应该就是$Input2要显示的内容
发表于 2012-6-26 12:50:42 | 显示全部楼层
楼上的,你的正则里有“PasswordVerify”字样,且“CardNo”在“ Password”的前面,而1 楼的现在给出的文件中的数据不是这样的,没有“PasswordVerify”,“CardNo”也在“ Password”的后面,你的代码不可能成功运行的。
根据你现在给出的1楼数据,7楼代码第4 句改成如下:$array = StringRegExp($str, "Password:(\d+)\h+" & "CardNo:"&GUICtrlRead($Input1), 3)就能成功。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 08:09 , Processed in 0.092122 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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