如何自动查找并读取txt中特定的值
本帖最后由 qddoit 于 2009-6-8 19:16 编辑<?xml version="1.0" encoding="utf-8" ?>
<gameData>
<Install>
<game000265 Status="4" TypeId="004" version="1" GameStartFile="shinanrenshang100ceng.dat" RealGameName="是男人上100层" InstallPath="${TAG_INSTALL_PATH}" AutoUpdate="1" RemindComment="1" />
</Install>
<GameCmmt />
</gameData>
txt内容如上,如何取出GameStartFile="shinanrenshang100ceng.dat"中
shinanrenshang100ceng.dat这个值
每个txt的格式相同 都有GameStartFile=“变量” 本帖最后由 lynfr8 于 2009-6-8 18:02 编辑
一直都怕正则,看着容易头晕
不过正则太强大了,(尤其膜拜文白兄!)
反正自己正在艰苦学着正则,就当时练手之作吧
此例子正则表达式不是太复杂(也可能我头脑想的简单了,呵呵)
stringRegExp($a,'GameStartFile="(.*)"\sReal',3)就能解决了
注意:本表达式是通过GameStartFile和Real特征字符前后包抄来匹配的
因为看不到你其他文本,就只能针对此贴写表达式了
自己当灵活处理
当然还有更厉害的能达到同样效果的表达式
请再赐教
效果图:
#include <Array.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiComboBoxEx.au3>
$Form1 = GUICreate("正则判断", 633, 254, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 8, 8, 617, 201)
GUICtrlSetData(-1, "Edit1")
$Button1 = GUICtrlCreateButton("运行正则", 24, 216, 97, 25, 0)
$Input = GUICtrlCreateInput("", 160, 216, 257, 21)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$a=GUICtrlRead($Edit1)
$b = stringRegExp($a,'GameStartFile="(.*)"\sReal',3)
for $i = 0 to UBound($b) - 1
GUICtrlSetData ($input,$b[$i])
Next
EndSwitch
WEnd 哎,楼上都写出答安了,我的麻烦方法可以不要了。 如果同篇文章很多GameStartFile=“变量”,就将input改为combo下拉列表显示即可 学习了
正则离我还远着呢 :face (23):
先谢谢了~~ 马上去试试。。。 编程离不开正则。。 远得很!!!!!!!!!!!! 好帖,一定要定一下! 还是不想用正则
页:
[1]