Autohotkey 中文论坛

完整版: 在一个文本文件中如何实现倒序查找字符串
你目前正在浏览的是简化版. 请点击这里浏览完整版
将一个源文件下载后获得的文本文件中有无倒序搜索字符串的方法?
就是查到某个字串后再向上查找最近的一个新的字符串。
比如说这个源文件中含有若干对字符串,例如可能有若干对字符串1、字符串2,只要存在字符串2那么它总在且肯定在某个字符串1后(有的内容只含有字符串1而没有字符串2)​,现在的任务就是先找字符串2,找到则向上搜索最近的那个字符串1。

[ 本帖最后由 yigao 于 2009-3-20 17:51 编辑 ]
今夜无人能……提供思路?
试下 StringGetPos, c, TextRec, %Str1%, 1, StrLen(TextRec) - InStr(TextRec, Str2) ~
不明白什么意思啊
引用:原帖由 冰翎寒月 于 2009-3-25 13:56 发表 [Image: back.gif]
试下 StringGetPos, c, TextRec, %Str1%, 1, StrLen(TextRec) - InStr(TextRec, Str2) ~

StrLen(TextRec) - InStr(TextRec, Str2) 是一个偏移量,数值意义是输入的整个文本的长度减去第二个字符串在文本中的位置,也就是说,倒着从文本底部开始搜到Str2的位置
比如说
TextRec:="This is an example."
Str2:="an"
那么 StrLen(TextRec) - InStr(TextRec, Str2) =10
这行代码的第4个参数是"1",表示从右边开始往左边搜索
也就是说从文本右边开始数第11(10+1)个字符开始搜索


那么整行的意思是,在文本TextRec中从Str2所在的位置开始从右往左搜索Str1,并把Str1所在的位置保存到变量c

[ 本帖最后由 lskxt 于 2009-3-28 13:41 编辑 ]
谢谢,这样一说我就明白了
参考网址