2013-11-28 3 views
0

Я хочу удалить 3 строки из текстового файла, начиная с теста имен, test2, test3. Следующий скрипт, который я создал, просто удаляет его, как я могу установить его для удаления трех строк?Удалить несколько строк из текстовых файлов vb

Const FOR_READING = 1 
Const FOR_WRITING = 2 
strFileName = "c:\test.txt" 
strCheckForString = UCase("Directory") 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objTS = objFS.OpenTextFile(strFileName, FOR_READING) 
strContents = objTS.ReadAll 
objTS.Close 

arrLines = Split(strContents, vbNewLine) 
Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING) 

For Each strLine In arrLines 
    If Not(Left(UCase(LTrim(strLine)),Len(strCheckForString)) = strCheckForString) Then 
     objTS.WriteLine strLine  
    End If 
Next 
+0

Вы бы не задать этот вопрос, если вы поняли, что сценарий действительно делает. Кроме того, это не vb.net, а VBScript. –

+0

Правильный ответ, я новичок в этом. Я все еще надеюсь, что вы можете мне помочь с этим – user3040935

ответ

0

У вас есть эта одна строка здесь:

strCheckForString = UCase("Directory") 

(который, кстати, вы можете написать, как этого strCheckForString = "DIRECTORY")

Вы можете добавить другие строки, как это

strCheckForString1 = "AnotherString" 
strCheckForString2 = "ThirdString" 

Затем, внутри цикла, вам нужно проверить, совпадают ли другие строки

If Not(Left(UCase(LTrim(strLine)),Len(strCheckForString)) = strCheckForString) AND 
    Not(Left(UCase(LTrim(strLine)),Len(strCheckForString1)) = strCheckForString1) AND 
    Not(Left(UCase(LTrim(strLine)),Len(strCheckForString2)) = strCheckForString2) Then 
    objTS.WriteLine strLine  
End If 

Я оставлю это до вас, чтобы выяснить, что это на самом деле делает :-)

Смежные вопросы