找回密码
 加入
搜索
楼主: minbiao

[AU3基础] 如何 读取ini的关键字 对比txt 如果相同的就修改txt的内容[已解决]

 火.. [复制链接]
 楼主| 发表于 2010-6-19 16:12:58 | 显示全部楼层
谢谢afan !
 楼主| 发表于 2010-6-23 14:45:38 | 显示全部楼层
各位大大, 如果我想换个结果,那应该要换什么命令呢?

比如:
1.ini
[配置]
12=34
56=78
--------------------------
2.txt
12 75 56 1256  5126
--------------------------
读取1.ini的关键字,对比2.txt的内容,如果相同就修改2.txt 的语句
希望2.txt得到的结果为:
34 75 78 1256  5126


afan大大,给的代码中,换什么命令可以实现这个结果呢?
 #include <File.au3>

$ini = IniReadSection('1.ini', '配置')
If @error Then Exit MsgBox(0, 1, @error)
$Dir = @ScriptDir & '\文件'
$File = _FileListToArray($Dir, '*.txt', 1)
If @error Then Exit MsgBox(0, 2, @error)
For $i = 1 To $File[0]
        $s_File = $Dir & '\' & $File[$i]
        $txt = FileRead($s_File)
        For $ii = 1 To $ini[0][0]
                $txt = StringReplace($txt, $ini[$ii][0], $ini[$ii][1])
        Next
        $fo = FileOpen($s_File, 2)
        FileWrite($fo, $txt)
        FileClose($fo)
Next
MsgBox(64, '完成', '已处理完成 ' & $File[0] & ' 个文件 ') 
谢谢各位大大!...
发表于 2010-6-23 14:51:23 | 显示全部楼层
你的意思是以空格为分割,必须和ini中的关键字一样才替换?
如 12 替换成 34,而 123 3124 之类都不变?

问题描述要清楚,而且要尽量考虑全面。
 楼主| 发表于 2010-6-23 15:16:53 | 显示全部楼层
呵呵!是的! 表达不太清楚不好意思!
发表于 2010-6-23 15:40:22 | 显示全部楼层
如果是这个问题,我在2#就提出过让你选择的 …
这不是耽误时间吗
发表于 2010-6-23 16:06:08 | 显示全部楼层
本帖最后由 afan 于 2010-6-23 16:12 编辑

17# 第12行 改成
$txt = StringRegExpReplace($txt, '(?<=\s)' & $ini[$ii][0] & '(?=\s|$)', $ini[$ii][1])
即可
 楼主| 发表于 2010-6-23 16:30:01 | 显示全部楼层
再再再再再次感谢afan!...
发表于 2012-3-2 20:38:23 | 显示全部楼层
要用到了先标记下
发表于 2012-5-29 16:35:49 | 显示全部楼层
终于找到相关内容了。 谢谢。
发表于 2014-9-23 10:39:36 | 显示全部楼层
感谢大大,感谢感谢,非常感谢,学习了。
发表于 2014-10-13 19:51:23 | 显示全部楼层
回复 1# minbiao
发表于 2014-10-13 19:51:47 | 显示全部楼层
新手,跟着学习学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-15 10:46 , Processed in 0.066085 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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