2013-02-13 122 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