minbiao 发表于 2010-6-19 16:12:58

谢谢afan !

minbiao 发表于 2010-6-23 14:45:38

各位大大, 如果我想换个结果,那应该要换什么命令呢?

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


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
      $s_File = $Dir & '\' & $File[$i]
      $txt = FileRead($s_File)
      For $ii = 1 To $ini
                $txt = StringReplace($txt, $ini[$ii], $ini[$ii])
      Next
      $fo = FileOpen($s_File, 2)
      FileWrite($fo, $txt)
      FileClose($fo)
Next
MsgBox(64, '完成', '已处理完成 ' & $File & ' 个文件 ') 谢谢各位大大!...

afan 发表于 2010-6-23 14:51:23

你的意思是以空格为分割,必须和ini中的关键字一样才替换?
如 12 替换成 34,而 123 3124 之类都不变?

问题描述要清楚,而且要尽量考虑全面。

minbiao 发表于 2010-6-23 15:16:53

呵呵!是的! 表达不太清楚不好意思!

afan 发表于 2010-6-23 15:40:22

如果是这个问题,我在2#就提出过让你选择的 …
这不是耽误时间吗

afan 发表于 2010-6-23 16:06:08

本帖最后由 afan 于 2010-6-23 16:12 编辑

17# 第12行 改成$txt = StringRegExpReplace($txt, '(?<=\s)' & $ini[$ii] & '(?=\s|$)', $ini[$ii])即可

minbiao 发表于 2010-6-23 16:30:01

再再再再再次感谢afan!...

ybb03 发表于 2012-3-2 20:38:23

要用到了先标记下

ufw119 发表于 2012-5-29 16:35:49

终于找到相关内容了。 谢谢。

ak47gglllk 发表于 2014-9-23 10:39:36

感谢大大,感谢感谢,非常感谢,学习了。

op336 发表于 2014-10-13 19:51:23

回复 1# minbiao

op336 发表于 2014-10-13 19:51:47

新手,跟着学习学习
页: 1 [2]
查看完整版本: 如何 读取ini的关键字 对比txt 如果相同的就修改txt的内容[已解决]