找回密码
 加入
搜索
查看: 3783|回复: 10

[系统综合] [已解决]关于统计文本行数和使用文本内容作为变量参考的问题

  [复制链接]
发表于 2012-3-10 00:57:55 | 显示全部楼层 |阅读模式
本帖最后由 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的值
请问如何可以实现上面的功能呢?
发表于 2012-3-10 01:17:45 | 显示全部楼层
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
 楼主| 发表于 2012-3-10 01:40:32 | 显示全部楼层
谢谢afan版主的快速回复,对于IP和host由于需频繁变动,我希望能够写在一个文件中做为配置文件,程序从配置文件中读取相关信息,不知道能否实现呢?
发表于 2012-3-10 03:57:03 | 显示全部楼层
根据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[1]
        $Hostname=$temp[2]
    MsgBox(0, $IPAddress, $Hostname)
Wend

FileClose($file)
发表于 2012-3-10 06:58:11 | 显示全部楼层
其实是很简单的文件操作,看帮助就能写出来,当然如果用正则方法就比较困难了。
发表于 2012-3-10 10:01:57 | 显示全部楼层
给出我常用的一法:
#include <File.au3>
Local $aArray, $Var
_FileReadToArray("配置文件.txt", $aArray)
For $i = 1 To $aArray[0]
        $Var = StringSplit($aArray[$i], ",")
        $IPAddress = $Var[1]
        $Hostname = $Var[2]
        MsgBox(0, $IPAddress, $Hostname)
Next
 楼主| 发表于 2012-3-10 13:48:05 | 显示全部楼层
非常感谢各位的指导,周一加入测试程序中调试.
发表于 2012-3-10 14:02:00 | 显示全部楼层
学习了,,,,,,,,
发表于 2012-3-10 16:10:49 | 显示全部楼层
谢谢afan版主的快速回复,对于IP和host由于需频繁变动,我希望能够写在一个文件中做为配置文件,程序从配置文件 ...
fuinei 发表于 2012-3-10 01:40



    Local $Str = FileRead('test.txt') 即可
一般回复这类问题,都会直接用字符串表示,直接可运行。当然,会直接忽略不会取字符串的…
 楼主| 发表于 2012-3-11 10:10:43 | 显示全部楼层
了解,afan版主对正达表达式的应用已经到了出神入化的境界了
 楼主| 发表于 2012-3-14 19:30:01 | 显示全部楼层
谢谢afan版主,zldfsz和shqf兄,三位提供的方法我都测试过均可实现,非常感谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 16:16 , Processed in 0.112224 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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