如何利用输入框读取指定文本内容并输出 [已解决]
本帖最后由 surongfu 于 2012-10-10 09:20 编辑如何利用输入框读取d:\evin\222.txt指定文本内容并输出到e:\ink.txt
222.txt内容如下:
张三*74112114*福建
李四*51515555*广东
张东*85145511*湖北
文本内容就是以上这种格式的,我想在输入框里输入 张三 就读取 张三*74112114*福建 并写入e:\ink.txt
大侠们如何实现这一效果 我突然觉得自己该是有多么的无聊啊。。。。。
例子中是必须姓名完整输入才匹配,按自己需要改那条正则,也可改成StringInStr($file[$i],$name)就只要这一行中有这个字就记录,在一次运行中已经查询过的名字不再重复查询和记录
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include<file.au3>
#include<array.au3>
If Not FileExists("222.txt") Then Exit
Global $file
_FileReadToArray("222.txt", $file)
If Not IsArray($file) Then Exit
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 265, 100, -1, -1)
$Input1 = GUICtrlCreateInput("", 5, 5, 200, 25)
$Edit1 = GUICtrlCreateEdit("", 5, 35, 255, 60, $ES_READONLY)
$Button1 = GUICtrlCreateButton("查询", 210, 5, 50, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Dim $AccelKeys = [["{enter}", $Button1]]
GUISetAccelerators($AccelKeys)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_search(GUICtrlRead($Input1))
EndSwitch
WEnd
Func _search($name = "")
GUICtrlSetData($Edit1, "")
If $name <> "" Then
For $i = UBound($file)-1 To 1 Step -1
If StringRegExp($file[$i], $name & '\*\d+', 0) Then;StringInStr($file[$i],$name)
FileWriteLine("ink.txt", $file[$i])
GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & $file[$i] & @CRLF)
_ArrayDelete($file,$i);防止重复记录
EndIf
Next
EndIf
EndFunc ;==>_search 楼上真的是好人,楼主一句代码都不发出你都帮他写! 2#确实是好人,这样对新手有相当的帮助,把自己的思路和源码都贡献给新手参考学习{:face (88):} 呵呵 下来看看 学习了。。。收来学习 感谢,感谢,收入,感谢
页:
[1]