Войти

Показать полную графическую версию : [решено] Как выделить каждую определенною строку в текстовом файле


KooDI
03-03-2013, 21:37
Доброго времени суток всем
Как можно сделать так, для примера, чтоб с каждой третей строки копировался весь текст и записывался в другой документ построчно

Iska
04-03-2013, 09:08
Например, так:
Option Explicit

Dim strSourceFile
Dim objFSO
Dim objTS

Dim lngCount

If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strSourceFile) Then
Set objTS = objFSO.CreateTextFile(strSourceFile & ".export.txt", True)

With objFSO.OpenTextFile(strSourceFile)
lngCount = 0

Do Until .AtEndOfStream
lngCount = lngCount + 1

If lngCount = 3 Then
objTS.WriteLine .ReadLine()

lngCount = 0
Else
.SkipLine
End If
Loop

.Close
End With

objTS.Close

Set objTS = Nothing
Else
WScript.Echo "Source file [" & strSourceFile & "] not found"
End If

Set objFSO = Nothing
Else
WScript.Echo "Usage: " & WScript.ScriptName & " <Source file>"
End If

WScript.Quit

KooDI
04-03-2013, 09:54
А где надо изменять значения, то которое определяет нужную мне строку, я изменял в этой строке If lngCount = 3 Then з 3 на 2 и при выполнение скрипта ничего не происходило

Iska
04-03-2013, 19:45
и при выполнение скрипта ничего не происходило »
KooDI, приведите Ваш код.

KooDI
04-03-2013, 22:38
Просто в вашем коде изменил 3 на 2

Option Explicit

Dim strSourceFile
Dim objFSO
Dim objTS

Dim lngCount

If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(strSourceFile) Then
Set objTS = objFSO.CreateTextFile(strSourceFile & ".export.txt", True)

With objFSO.OpenTextFile(strSourceFile)
lngCount = 0

Do Until .AtEndOfStream
lngCount = lngCount + 1

If lngCount = 2 Then
objTS.WriteLine .ReadLine()

lngCount = 0
Else
.SkipLine
End If
Loop

.Close
End With

objTS.Close

Set objTS = Nothing
Else
WScript.Echo "Source file [" & strSourceFile & "] not found"
End If

Set objFSO = Nothing
Else
WScript.Echo "Usage: " & WScript.ScriptName & " <Source file>"
End If

WScript.Quit

Iska
05-03-2013, 00:09
KooDI, взял приведённый код. Создал текстовый файл:
1
2
3
4
5
6
7
8
9
10

Запустил скрипт, указав аргументом текстовый файл. Получил новый текстовый файл:
2
4
6
8
10


А у Вас? Если не так — упакуйте Ваш текстовый файл в архив и выложите сюда или на RGhost.ru.

KooDI
05-03-2013, 21:47
Не знаю почему но, сейчас все работает.
Спасибо огромное




© OSzone.net 2001-2012