2014-02-10 191 views
-1

有人會友好地幫我用vbscript嗎?我有一個簡單的文本文件存儲在D:\Projectsvb腳本只刪除文本文件中的特定行

這裏的內容一個小樣本(在記事本中完成):

Header 1 (this will always vary and be one simple line of text) 

Captain: John Doe 1 
Team Roster: Temp\filename blah blah 
Team Roster: Permanent\filename blah blah 

Header 2 (this will always vary and be one simple line of text) 

Captain: John Doe 2 
Team Roster: Temp\filename blah blah 
Team Roster: Permanent\filename blah blah 

我需要的是在文件中除頭部被刪除一切,需要每個標題的重複。所以最終的結果是這樣的:

Header line 1 
Header line 1 
Header line 2 
Header line 2 etc... 

我意識到人們來這裏在他們的空閒時間志願者,所以任何幫助將非常感激。我不知道如何編程,否則我會自己做。謝謝。

+0

頭1 ,標題2 - 你有頭的例子嗎?或者,標題是否改變了每一行,但隊長和隊員名單總是一樣的? – QuickNull

回答

0

假設「隊長」和「隊員名單」總是例外文件中存在,且標題是變化的,你可以做這樣的事情(輸出將被.stripped.txt)

stripFile "D:\Projects\File.txt" 

Sub stripFile(fileName) 

    Dim strOutputFile, strInputFile, strLine 
    Dim objFSO, objOutputFile, objInputFile 

    strOutputFile = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName)) & fileName & ".stripped.txt" 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 

    Set objOutputFile = objFSO.OpenTextFile(strOutputFile, 8, True) 
    Set objInputFile = objFSO.OpenTextFile(fileName, 1) 

    Do While objInputFile.AtEndOfStream = False 
    strLine = objInputFile.ReadLine 

    If Mid(strLine, 1, 7) <> "Captain" Then 
     If Mid(strLine, 1, 11) <> "Team Roster" Then 
     If strLine <> "" Then 
      objOutputFile.WriteLine strLine 
     End If 
     End If 
    End If 
    Loop 

    objOutputFile.Close 
    objInputFile.Close 

    Set objOutputFile = Nothing 
    Set objInputFile = Nothing 
    Set objFSO = Nothing 

End Sub 
+0

感謝QuickNull。 線12 焦炭3 錯誤:錯誤的文件名稱或編號 代碼800A0034 它說壞的文件名或號碼不幸的是,當我運行代碼,我收到一條錯誤消息。 代碼800A0034 – user2849978

+0

我需要比這更多的信息。如果您將您的示例複製/粘貼到文件中,並對該文件運行此代碼段,輸出將爲: 標題1(這將始終變化,並且只是一行簡單的文本)和 標題1改變並且是一行簡單的文本) – QuickNull

+0

當運行時錯誤在線等這樣的錯誤說...它計算代碼中的空行嗎?我試圖找出這是失敗的地方.... – user2849978