我正在尋找一個程序,通過文本文件查找以「F(」開頭的行,並將這些行復制到單獨的文本文件,然後刪除關閉括號後的任何內容,並在該行前添加一個固定的文本字符串(該字符串爲「CALL EXTERN/DMIS,M,(DMIS_MACRO_FOR_FILTERING)」)VB腳本或批處理文件,將文本文件的特定行拖到單獨的文件
我正在尋找的完整行看起來是這樣的。
F(Top_OD)=FEAT/CIRCLE,OUTER,CART,0,0,-0.2,0,0,1,0.99975
之後,將有相同的格式多條線路,以及我不感興趣的其他線路。
我想什麼,結束了會是什麼樣子
CALL EXTERN/DMIS,M,(DMIS_MACRO_FOR_FILTERING),Top_OD
添加到困難,我期待複製可以改變名稱的長度和逗號的數量在該行可以更改。
我不是一個交易程序員,但我通常可以將我需要的東西從谷歌拼湊到一起,但是這讓我對一些可能很明顯的原因產生了阻礙。任何幫助將不勝感激。 SOLVED-下面是代碼
DIM FEATURE_LIST_FILENAME,MACRO_CALL_LIST
Dim RegEx : Set RegEx = New RegExp
Dim Matches
RegEx.IgnoreCase = True
RegEx.Global = FALSE
RegEx.Pattern = "F\((\w+)\)\="
FEATURE_LIST_FILENAME = "hardcoded filename"
MACRO_CALL_LIST = "hardcoded filename"
Set AN_INSTANCE_OF_A_FILESYSTEM_OBJECT = CreateObject("Scripting.FileSystemObject")
Set FILE_TO_READ = AN_INSTANCE_OF_A_FILESYSTEM_OBJECT.OpenTextFile(FEATURE_LIST_FILENAME,1)
Set AN_INSTANCE_OF_A_FILESYSTEM_OBJECT = CreateObject("Scripting.FileSystemObject")
Set FILE_TO_WRITE = AN_INSTANCE_OF_A_FILESYSTEM_OBJECT.CreateTextFile (MACRO_CALL_LIST,1)
'Set = CreateObject("Scripting.FileSystemObject")
'Set FILE_TO_WRITE = AN_INSTANCE_OF_A_FILESYSTEM_OBJECT.CreateTextFile(MACRO_CALL_LIST,1)
Do Until FILE_TO_READ.AtEndOfStream
CURRENT_LINE_IN_TEXT = FILE_TO_READ.ReadLine
Set Matches = RegEx.Execute(CURRENT_LINE_IN_TEXT)
If Matches.Count = 1 then FILE_TO_WRITE.Writeline "CALL EXTERN/DMIS,M, (DMIS_MACRO_FOR_FILTERING)," + Matches(0).Submatches(0)
'objFile.Writeline (CURENT_LINE_IN_TEXT)
Loop
FILE_TO_READ.Close
使原來只有部分你正在使用的是什麼被括在括號內? – Squashman
把你可以測試的東西拼湊在一起,然後將它張貼在這裏與你卡在哪裏以及實際和預期的行爲是什麼。這就是這個網站應該如何工作。 – Compo
基本上你要使用的是一個'FOR/F'命令並使用TOKENS和DELIMS選項。您只需要前兩個令牌,而您的分隔符將會是括號。使用IF命令檢查第一個標記是否等於F. – Squashman