DenQ 发表于 2010-8-7 21:26:57

[已解决]反向读取变量?

本帖最后由 DenQ 于 2010-10-26 18:29 编辑

我有一个配置文件里面写了格式为:
   
00:E0:6F:03:C6:85 = 018

原本用意是,读取本机的MAC, 并在配置文件里面寻找对应的机器名.然后去机名前的0, 得到本机IP(末位吧!)

   但现在, 在软件里面加了一个修改MAC的功能, 就是利用本机机器名, 在配置文件里面寻找对应的MAC地址, 并修改..

各位大帮忙,, 上次的忙很感谢,, 这次真是遇到大麻烦了..   如何在不另外加配置文件的情况下.. 实现我说的功能...

DenQ 发表于 2010-8-7 21:33:07

本帖最后由 DenQ 于 2010-8-7 21:55 编辑

find "018" AutoIP.ini >AutoIP.tmp
for /f "skip=3 tokens=1" %%C in (AutoIP.tmp) do set Mac=%%C
echo %Mac%

用批处理, 处理过后。可以得到 正确的Mac 。 但不知道。如何用在 Au3 上面..

水木子 发表于 2010-8-7 21:46:28

http://www.autoitx.com/search.php?searchid=246&orderby=lastpost&ascdesc=desc&searchsubmit=yes

3mile 发表于 2010-8-7 21:50:38

因为没有完整的AutoIP.ini文件,只能猜。$i=1
While 1
        $read=FileReadLine("AutoIP.ini",$i)
        If @error Then
                ExitLoop
        Else
                If StringInStr($read,'018') Then
                        MsgBox(0,0,StringRegExpReplace($read,'(.+)\=\h(\d{3})','$1'))
                EndIf
        EndIf
        $i+=1
WEnd
       

DenQ 发表于 2010-8-7 21:50:51

回复 3# 水木子


            我只是需要一个获取变量的问题。。 改MAC。 会了。 {:face (396):}

DenQ 发表于 2010-8-7 21:55:01

回复 4# 3mile

AutoIP.ini:


--- MAC地址 ---- 机器名 --
00:E0:6F:03:9C:8F = 001
00:E0:6F:03:C6:68 = 002
00:E0:6F:03:C6:69 = 003
00:E0:6F:03:9C:AD = 004
00:E0:6F:03:B8:BD = 005
00:E0:6F:03:81:4B = 006

差不多就是这种格式!

jhun 发表于 2010-8-7 22:10:58

建议你去下载我在源码发的用INI做数据库,如果你能坚持看完源码,我相信你对INI文件的操作不会有什么问题了

3mile 发表于 2010-8-7 22:15:46

回复 6# DenQ
4楼代码可用,第七行为查找的机器名。
方便楼主吧,做成自定义函数方便调用。
$name=005;需要查找的机器名
$mac=_findmac($name);获取MAC
MsgBox(0,0,$mac)

Func _findmac($name);根据机器名获取MAC的算定义函数
$i=1
While 1
        $read=FileReadLine("AutoIP.ini",$i)
        If @error Then
                ExitLoop
        Else
                If StringInStr($read,$name) Then                       
                        Return StringRegExpReplace($read,'(.+)\=\h(\d{3})','$1')
                EndIf
        EndIf
        $i+=1
WEnd
EndFunc
       
页: [1]
查看完整版本: [已解决]反向读取变量?