Войти

Показать полную графическую версию : VBScript. Пропуск строк в цикле


alex1985khv
05-08-2015, 11:26
Добрый день. Подскажите пожалуйста, как при чтении текстового файла пропускать две строки? Т.е. берем первую строку, потом 4-ую, потом 7-ую и т.д.?
Мне нужно прочесть строки из одного файла и перенести их в другой, но пропуская по 2 строки из первого файла (input.txt).
В проверке If не могу сообразить, как игнорировать две строки. Или можно как-то по другому реализовать?

Const ForReading = 1
Dim strSearchString


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set inFile = objFSO.OpenTextFile("C:\input.txt",ForReading)
Set outFile = objFSO.OpenTextFile("C:\output.txt",2,True)



rowcount = 1
Do While NOT inFile.AtEndOfStream

if .... Then

strSearchString = inFile.ReadLine
outFile.Writeline strSearchString

Else

strSearchString = inFile.SkipLine

End If
rowcount = rowcount + 1
Loop


inFile.Close
outFile.Close
WScript.Echo "Выгружено!"

Iska
05-08-2015, 11:36
как при чтении текстового файла пропускать две строки »
TextStream.SkipLine()
TextStream.SkipLine()

Или можно как-то по другому реализовать? »
Примерный размер файла каков?

alex1985khv
05-08-2015, 13:01
Iska, размер файла около 50 мегабайт. Нужно будет регулярно считывать с него данные, только за разную дату.

Iska
05-08-2015, 16:06
Тогда можно как-то так (не проверялось):
Option Explicit

Dim strSourceFile
Dim strDestFile

Dim arrContent
Dim i


strSourceFile = "input.txt"
strDestFile = "out.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
With .OpenTextFile(strSourceFile)
arrContent = Split(.ReadAll(), vbCrLf)
.Close
End With

With .CreateTextFile(strDestFile, True)
For i = LBound(arrContent) To UBound(arrContent) Step 3
.WriteLine arrContent(i)
Next

.Close
End With
Else
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 1
End If
End With

WScript.Quit 0

alex1985khv
06-08-2015, 02:09
Iska, работает. Спасибо, вы гений, уже не первый раз помогаете.

Iska
06-08-2015, 03:44
Спасибо, вы гений, »
Спасибо, конечно, но Вы глубоко заблуждаетесь.




© OSzone.net 2001-2012