Вот пример процедуры, которая удаляет верхние 15 строк из любого текстового файла (независимо от содержания этих строк). Он должен иметь возможность обрабатывать произвольно большие файлы, поскольку он работает в одной строке за раз.
Sub removeTopLines()
Dim srcFile As String, nSrc As Integer ' source file (read from)
Dim dstFile As String, nDst As Integer ' destination file (write to)
Dim textLine As String
Const LINES_TO_SKIP = 15
Dim lineCounter As Long
srcFile = "c:\opt\src.txt"
dstFile = "c:\opt\dst.txt"
nSrc = FreeFile
Open srcFile For Input As #nSrc
nDst = FreeFile
Open dstFile For Output As #nDst
lineCounter = 1
Do Until EOF(nSrc)
Line Input #nSrc, textLine
If lineCounter > LINES_TO_SKIP Then
Print #nDst, textLine
End If
lineCounter = lineCounter + 1
Loop
Close #nDst
Close #nSrc
End Sub
Вы можете увидеть пример из how to traverse a directory tree here, или в качестве альтернативы вы можете просто получить список всех этих имен путей к файлам и вызвать эту процедуру из другого цикла придав ему один файл за раз.
Обновление: здесь есть другая версия, которая вместо строки подсчитывает строку, содержащую «время» и копирует только строки после этого.
Sub removeTopLinesAfter()
Dim srcFile As String, nSrc As Integer ' source file (read from)
Dim dstFile As String, nDst As Integer ' destination file (write to)
Dim textLine As String, strAfter As String
strAfter = "time"
Dim copyLines As Boolean
srcFile = "c:\opt\src.txt"
dstFile = "c:\opt\dst.txt"
nSrc = FreeFile
Open srcFile For Input As #nSrc
nDst = FreeFile
Open dstFile For Output As #nDst
copyLines = False
Do Until EOF(nSrc)
Line Input #nSrc, textLine
If Not copyLines Then
copyLines = InStr(textLine, strAfter) > 0
Else
Print #nDst, textLine
End If
Loop
Close #nDst
Close #nSrc
End Sub
Как это связано с преимуществом? В какой момент Excel вовлечен в это? –
Если это нормально, используя пакетный скрипт, обратитесь к http://stackoverflow.com/questions/11428692/batch-file-to-delete-first-3-lines-of-a-text-file. Вы можете также улучшает его обработку нескольких файлов внутри подпапок –
Блокнот не имеет возможности для макросов: просьба указать проблему без предположений об инструментах, а затем описать, что вы пробовали. – Richard