2013-02-13 104 views
-2

我需要复制包含单词“make”,“model”,“year”的文档的每一行。这些词总是彼此相邻。我将需要将每一行放入一个名为ahk-output.txt的新文件中。使用autohotkey解析文本文件

即原始数据:

模型本田 模型公民 2012年

输出到文件:

本田思域 - 2012

我需要重复对发现许多文件我文件夹。它们位于相同的文件夹中,所有复制的数据将被写入相同的文件。这些文件很长,但保证在前30行。

Loop, read, C:\Users\vangp.ENTERPRISE\Documents\*.txt, C:\ahk-output.txt 
{ 
    IfInString, A_LoopReadLine, model, FileAppend, %A_LoopReadLine%`n 
} 
{ 
    IfInString, A_LoopReadLine, year, FileAppend, %A_LoopReadLine%`n 
} 
{ 
    IfInString, A_LoopReadLine, marketing name, FileAppend, %A_LoopReadLine%`n 
} 
+0

“保证是前30行”这是不是说这些话不会出现后30行,不应该在30行被改变(甚至发现时)或将在第30行肯定会出现超过前30行,他们应该改变以及? – 2013-02-13 16:42:11

+0

这些信息绝对会排在前30排。我不希望脚本浪费时间搜索整个文件,因为我想要的数据不会低于前30行。 – user2005562 2013-02-13 18:19:58

+0

请提供关于建议解决方案的一些反馈,答案是有帮助的,然后请“接受”该答案。谢谢! – 2013-02-23 08:17:30

回答

0

我决定帮助你,因为没有人回答。 这是一个简单的开始,修改你心中的内容。

FileDelete, C:\Temp\Results\Extracted.txt 
Loop, C:\Temp\Source\*.txt 
{ 
    Loop, read, C:\Temp\Source\%A_LoopFileName% 
    { 
     IfInString, A_LoopReadLine, model 
     { 
      StringReplace, CurrentLine, A_LoopReadLine, model, %A_Space% 
      StringReplace, CurrentLine, CurrentLine, year, %A_Space% 
      StringReplace, CurrentLine, CurrentLine, marketing name, %A_Space%-%A_Space% 
      FileAppend, %CurrentLine%`n, C:\Temp\Results\Extracted.txt 
     } 
     If (A_Index >= 30) 
      Break 
    } 
} 
+0

非常感谢。 – user2005562 2013-02-27 16:50:06