Показать полную графическую версию : [решено] Добавление строки после каждой строки с подстановкой значения в имя файла
Имею программу передач такого типа в текстовом файле (исходный файл (http://rghost.ru/60133388))
00:00 День в календаре 1612
00:05 Актуальное интервью 1512
00:20 Экстренная служба 1512
00:25 Прогноз погоды вечер 1512
00:30 Куда обратиться 1512
00:35 Интернет-обзор 1512
Мне необходимо добавить строку movie 0:00:09.04 [0.10] E:\Ролики\День_в_календаре. avi после каждой строки так чтобы имя предыдущей строки подставлялось в имя файла в адресе пути("Е:\Ролики\..."), так это все должно выглядеть:
00:00 День в календаре 1612
movie 0:00:09.04 [0.10] E:\Ролики\День в календаре 1612.avi
00:05 Актуальное интервью 1512
movie 0:00:09.04 [0.10] E:\Ролики\Актуальное интервью 1512.avi
00:20 Экстренная служба 1512
movie 0:00:09.04 [0.10] E:\Ролики\Экстренная служба 1512.avi
00:25 Прогноз погоды вечер 1512
movie 0:00:09.04 [0.10] E:\Ролики\Прогноз погоды вечер 1512.avi
00:30 Куда обратиться 1512
movie 0:00:09.04 [0.10] E:\Ролики\Куда обратиться 1512.avi
00:35 Интернет-обзор 1512
movie 0:00:09.04 [0.10] E:\Ролики\Интернет-обзор 1512.avi
Как это можно релизовать? Если не трубно, то напишите подробно.
такого типа в текстовом файле »
Упакуйте образец текстового файла в архив. Архив выложите на RGhost. Ссылку — сюда.
Исходный файл http://rghost.ru/60133388
d22cva, давайте попробуем на WSH:
Option Explicit
Dim strPattern
Dim strSourceFile
Dim strTempFileName
Dim strContent
Dim strLine
strPattern = "movie 0:00:09.04 [0.10] E:\Ролики\[:|*?].avi"
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
strTempFileName = GetTemporaryName()
With .OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With .CreateTextFile(strTempFileName, True)
For Each strLine In Split(strContent, vbCrLf)
.WriteLine strLine
If Len(Trim(strLine)) <> 0 Then
.WriteLine Replace(strPattern, "[:|*?]", Split(strLine, " ", 2)(1))
End If
Next
.Close
End With
.CopyFile strSourceFile, .BuildPath(.GetParentFolderName(strSourceFile), .GetBaseName(strSourceFile) & ".bak"), True
.CopyFile strTempFileName, strSourceFile, True
.DeleteFile strTempFileName, True
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
End With
Else
WScript.Echo "Usage:"
WScript.Quit 1
End If
WScript.Quit 0
'=============================================================================
'=============================================================================
' Серый форум / VBScript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
Const TemporaryFolder = 2
Dim strTempName
With WScript.CreateObject("Scripting.FileSystemObject")
Do
strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
End With
GetTemporaryName = strTempName
End Function
'=============================================================================
Сохраните код в файл с расширением «.vbs». Целевой файл указывается аргументом командной строки скрипта. Также можно просто перетащить целевой файл на скрипт из Проводника.
Iska, Спасибо огромное!!! Почти идеально! А можно сделать так чтобы программа вставляла сначала в начало каждой строки comment 0 , а потом выполнялась ваша программа???
comment 0 00:00 День в календаре 1612
comment 0 00:05 Актуальное интервью 1512
comment 0 00:20 Экстренная служба 1512
comment 0 00:25 Прогноз погоды вечер 1512
comment 0 00:30 Куда обратиться 1512
comment 0 00:35 Интернет-обзор 1512
А потом подставлялась каждая строка как в предыдущем посте, чтоб получилось в итоге так
comment 0 00:00 День в календаре 1612
movie 0:00:09.04 [0.10] E:\Ролики\День в календаре 1612.avi
comment 0 00:05 Актуальное интервью 1512
movie 0:00:09.04 [0.10] E:\Ролики\Актуальное интервью 1512.avi
comment 0 00:20 Экстренная служба 1512
movie 0:00:09.04 [0.10] E:\Ролики\Экстренная служба 1512.avi
comment 0 00:25 Прогноз погоды вечер 1512
movie 0:00:09.04 [0.10] E:\Ролики\Прогноз погоды вечер 1512.avi
comment 0 00:30 Куда обратиться 1512
movie 0:00:09.04 [0.10] E:\Ролики\Куда обратиться 1512.avi
comment 0 00:35 Интернет-обзор 1512
movie 0:00:09.04 [0.10] E:\Ролики\Интернет-обзор 1512.avi
вставляла сначала в начало каждой строки comment 0 , а потом выполнялась ваша программа??? »
Зачем так?
Замените:
.WriteLine strLine
на:
.WriteLine "comment 0 " & strLine
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.