Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   VBScript. Пропуск строк в цикле (http://forum.oszone.net/showthread.php?t=303460)

alex1985khv 05-08-2015 11:26 2537226

VBScript. Пропуск строк в цикле
 
Добрый день. Подскажите пожалуйста, как при чтении текстового файла пропускать две строки? Т.е. берем первую строку, потом 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 2537233

Цитата:

Цитата alex1985khv
как при чтении текстового файла пропускать две строки »

Код:

TextStream.SkipLine()
TextStream.SkipLine()

Цитата:

Цитата alex1985khv
Или можно как-то по другому реализовать? »

Примерный размер файла каков?

alex1985khv 05-08-2015 13:01 2537271

Iska, размер файла около 50 мегабайт. Нужно будет регулярно считывать с него данные, только за разную дату.

Iska 05-08-2015 16:06 2537375

Тогда можно как-то так (не проверялось):
Код:

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 2537653

Iska, работает. Спасибо, вы гений, уже не первый раз помогаете.

Iska 06-08-2015 03:44 2537658

Цитата:

Цитата alex1985khv
Спасибо, вы гений, »

Спасибо, конечно, но Вы глубоко заблуждаетесь.


Время: 08:49.

Время: 08:49.
© OSzone.net 2001-