2016-10-17 104 views
0

所以,我試圖梳理通過一個大的文本文件只包含某些文本的某些行。想要將整行寫入新的文本文件。這是我想出來的,但它完全清空了taget文本文件,並給了我錯誤「輸入文件末尾」。閱讀文本文件,並只寫行與某些文字

Set objFS = CreateObject("Scripting.FileSystemObject") 
strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 
Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 
Set ts = objFile.OpenAsTextStream(1,-2) 
Do Until ts.AtEndOfStream = false 
    strLine = ts.ReadLine 
    ' do something with strLine 
    if strLine like "tagId" Then 
    objOutFile.Write(strLine) 
    end if 
    ts.AtEndOfStream = false 
Loop 
objOutFile.Close 
ts.Close 
objFS.DeleteFile(strFile) 
objFS.MoveFile strTemp,strFile 

在此先感謝!

UPDATE:工作守則

Set objFS = CreateObject("Scripting.FileSystemObject") 

strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 

Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 
Set ts = objFile.OpenAsTextStream(1,-2) 

Do While Not ts.AtEndOfStream 
    strLine = ts.ReadLine 


    if Instr(1, strLine, "tagId") > 0 Then 
     objOutFile.WriteLine strLine 

    end if 


Loop 
objOutFile.Close 
ts.Close 
+0

你不檢查,看是否有行*包括*「標籤識別」,但行,而不是是否等於「標籤識別」。使用'Instr()'或'Like'來檢查一個字符串是否包含在另一個字符串中。你在計數/計數器上做什麼? –

+0

我剛剛意識到並更新了它,但現在即時獲取輸入文件結束。它也刪除目標文本文件中的所有內容 – duckfeet23

+0

這是VBA還是VBScript?一個有'Like'操作符,另一個沒有。 –

回答

1
Set objFS = CreateObject("Scripting.FileSystemObject") 

strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 

Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 

Set ts = objFile.OpenAsTextStream(1,-2) 

Do While Not ts.AtEndOfStream 

    strLine = ts.ReadLine 
    ' do something with strLine 
    'if Instr(1, strLine, "tagId") > 0 'vbscript/VBA 
    if strLine Like "*tagId*" Then  'VBA 
     objOutFile.WriteLine strLine 
    end if 

Loop 

objOutFile.Close 
ts.Close 

objFS.DeleteFile strFile 
objFS.MoveFile strTemp,strFile 
+0

謝謝,但我得到 – duckfeet23

+0

錯誤:子行或功能沒有定義第15行字符5 – duckfeet23

+0

這是什麼?如果您點擊調試哪一行被突出顯示? –