lxwlxwayy 发表于 2012-3-16 00:04:16

各位辛苦了,再顶下

131738 发表于 2012-3-16 00:06:04

回复131738


    你这样是十分不便于维护的,建议使用配置文件,字段名就是文件路径,关键字是查找项 ...
afan 发表于 2012-3-15 23:52 http://www.autoitx.com/images/common/back.gif

难道是 $i 循环可以捕捉行号???????

afan 发表于 2012-3-16 00:08:11

回复 47# 131738


    $i 不是行号,是相对字段名的行号,你要行号是想直接跳到指定位置?

Ycxw2008 发表于 2012-3-16 00:15:47

数组不就是存放数据方便吗
对应编号咯
还有我觉得大叔该写个适合自己自动化的,官网的好像必须要scite的吧

131738 发表于 2012-3-16 03:11:50

本帖最后由 131738 于 2012-3-16 03:14 编辑

回复131738


    看懂了,是连续的,那就好办了
afan 发表于 2012-3-15 23:38 http://www.autoitx.com/images/common/back.gif

如果用配置文件,无论下一版本如何添加删除修改, 都能保证连续性了,
但 StringRegExpReplace() 能否一次只替换一个 " 关键字 = 值 ",
而不是一次替换整个字段的所有 " 关键字 = 值 " 呢?
主要是要求替换失败时要记录 字段名 加一个 " 关键字 = 值 " 的信息,方便替换失败的修改.
一次替换整个 .txt 文件是无法记录失败行的文本信息的,
而且一次替换整个 .txt 文件 不可能会出现失败, 但也无法保证该文件完全替换成功.

下午我再具体试写代码看看.....

afan 发表于 2012-3-16 03:16:32

回复 50# 131738


    本来就是一次替换一组的,只是写入时是替换完全部后一次性写入,在替换过程中可以返回具体信息,看你怎么用了。
3点多了,老革命也要休息了吧…

魔导 发表于 2012-3-16 06:59:36

一楼看到51楼没看懂。。。。
高手云集啊   顶起来

3mile 发表于 2012-3-16 09:38:41

试下将$Test = _ReplaceStringInFile($aWinAPIEx[$k], $aWinAPIEx[$k], $aWinAPIEx[$k], 0, 0)这两行改为试下,貌似前辈在替换过程中将所有包含(或小于)关键字的内容也一并替换了.

$Test=StringRegexpReplace(FileRead($aWinApiEx[$k]),"\Q"&$aWinApiEx[$k]&"\E\b",$aWinApiEx[$k])

131738 发表于 2012-3-16 13:12:20

试下将$Test = _ReplaceStringInFile($aWinAPIEx[$k], $aWinAPIEx[$k], $aWinAPIEx[$k], 0, 0)这两 ...
3mile 发表于 2012-3-16 09:38 http://www.autoitx.com/images/common/back.gif

谢谢!!!好像是一次替换一行文本。。。我试试看。。。

131738 发表于 2012-3-16 13:18:14

回复131738


    本来就是一次替换一组的,只是写入时是替换完全部后一次性写入,在替换过程中可以返 ...
afan 发表于 2012-3-16 03:16 http://www.autoitx.com/images/common/back.gif

想了想,使用配置文件对增删修改的维护确实方便,我准备先修改到 ini 再来请教....

afan 发表于 2012-3-16 13:24:01

回复 56# 131738


    只要单个字段不要超过 32767 个字符,直接使用内置的Ini*函数读写,很方便~
为了方便维护,最好使用N个Ini文件,比如 WinAPIEx.ini,AutoIt3CHS.ini,UDFs3CHS.ini等

131738 发表于 2012-3-16 15:47:06

回复131738


    只要单个字段不要超过 32767 个字符,直接使用内置的Ini*函数读写,很方便~
为了方 ...
afan 发表于 2012-3-16 13:24 http://www.autoitx.com/images/common/back.gif

这个数组时就分了的,最大一个数组的 SciTE 行数 29500 行

131738 发表于 2012-3-16 15:50:55

回复 57# afan

"单个字段不要超过 32767 个字符"是指:

[字段]
xxxx1=aaa1
......
xxxx(n)=aaaa(n)

afan 发表于 2012-3-16 15:52:06

回复 59# 131738


    是的,注意是字符数,不是行数

131738 发表于 2012-3-17 13:03:00

回复131738


    你这样是十分不便于维护的,建议使用配置文件,字段名就是文件路径,关键字是查找项 ...
afan 发表于 2012-3-15 23:52 http://www.autoitx.com/images/common/back.gif

ini 文件不行!函数名字段下的:
(可选参数)开头的关键字 被 $var = IniReadSectionNames($ini) 读成了字段,
循环 $var1 = IniReadSection ( $ini, $var[$k] ) 读字段的全部关键字和值时;
设置 If $var[$k] = 'optional' Then ContinueLoop, 结果没有了 以后的所有文本!
页: 1 2 3 [4] 5 6
查看完整版本: (已解决)请 afan 帮助修改正则替换代码, 谢谢!