[已解决]关于统计文本行数和使用文本内容作为变量参考的问题
本帖最后由 fuinei 于 2012-3-14 19:30 编辑大家好,我打算使用文本文件做为配置文件,配置文件格式如下:
192.168.1.1,host1
192.168.1.2,host2
192.168.1.3,host3
192.168.1.4,host4
...
我希望能把
1、文件行数做为循环的最大值
2、读取每一行内容中逗号前面部分作为变量$IPAddress的值
3、读取每一行内容中逗号后面部分作为变量$Hostname的值
请问如何可以实现上面的功能呢? Local $Str = _
'192.168.1.1,host1' & @CRLF & _
'192.168.1.2,host2' & @CRLF & _
'192.168.1.3,host3' & @CRLF & _
'192.168.1.4,host4'
Local $Test = StringRegExp($str, '[^,\v]+', 3)
Local $IPAddress, $Hostname
For $i = 0 To UBound($Test) - 1 Step 2
$IPAddress = $Test[$i]
$Hostname = $Test[$i + 1]
MsgBox(0, $IPAddress, $Hostname)
Next 谢谢afan版主的快速回复,对于IP和host由于需频繁变动,我希望能够写在一个文件中做为配置文件,程序从配置文件中读取相关信息,不知道能否实现呢? 根据FileReadLine帮助文件示例修改而来
;要打开的文件
Local $file = FileOpen("test.txt", 0)
; 检查打开的文件是否可读
If $file = -1 Then
MsgBox(0, "错误", "不能打开文件.")
Exit
EndIf
; 每次读取一行文本,直到文件结束.
While 1
Local $line = FileReadLine($file)
If @error = -1 Then ExitLoop
Local $temp = StringSplit($line, ",")
$IPAddress=$temp
$Hostname=$temp
MsgBox(0, $IPAddress, $Hostname)
Wend
FileClose($file) 其实是很简单的文件操作,看帮助就能写出来,当然如果用正则方法就比较困难了。 给出我常用的一法:
#include <File.au3>
Local $aArray, $Var
_FileReadToArray("配置文件.txt", $aArray)
For $i = 1 To $aArray
$Var = StringSplit($aArray[$i], ",")
$IPAddress = $Var
$Hostname = $Var
MsgBox(0, $IPAddress, $Hostname)
Next 非常感谢各位的指导,周一加入测试程序中调试. 学习了,,,,,,,, 谢谢afan版主的快速回复,对于IP和host由于需频繁变动,我希望能够写在一个文件中做为配置文件,程序从配置文件 ...
fuinei 发表于 2012-3-10 01:40 http://www.autoitx.com/images/common/back.gif
Local $Str = FileRead('test.txt') 即可
一般回复这类问题,都会直接用字符串表示,直接可运行。当然,会直接忽略不会取字符串的… 了解,afan版主对正达表达式的应用已经到了出神入化的境界了 谢谢afan版主,zldfsz和shqf兄,三位提供的方法我都测试过均可实现,非常感谢!
页:
[1]