"F"で始まる行のテキストファイルを見て、その行を別のテキストファイルにコピーする閉じ括弧の後に何かを削除し、行の前に固定文字列を追加する(その文字列は "EXTERNAL/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
ようになりますで終わるしたいのですが、私はコピーしているよ名前の長さを変えることができ、かつライン缶でコンマ数変化する。
私は貿易によってプログラマーではありませんが、私は通常、私がGoogleから必要としているものをまとめることができますが、これはおそらく明らかな理由のために私を苦しめています。どんな助けでも大歓迎です。 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オプションを使用します。あなたはちょうど最初の2つのトークンが必要で、区切り文字は両方ともかっこになります。最初のトークンがFと等しいかどうかをチェックするのに 'IF'コマンドを使用してください。 – Squashman