Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Конвертировать тхт файл с характеристиками видео файла

Ответить
Настройки темы
Любой язык - Конвертировать тхт файл с характеристиками видео файла

Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Здравствуйте, подскажите, пожалуйста, как можно изменить тхт файл har.txt таким образом:
Исходный файл har.txt:

Код: Выделить весь код
File Name.type:  0001finish.wmv
Resolution:  640x480 
Duration:  0:13:21
Filesize:  92Mb
File Name.type:  0002start.avi
Resolution:  480x360 
Duration:  0:03:52
Filesize:  30Mb
File Name.type:  0003red.mp4
Resolution:  640x480 
Duration:  0:17:02
Filesize:  163Mb
File Name.type:  0004blue.wmv
Resolution:  640x480 
Duration:  0:08:46
Filesize:  73Mb
File Name.type:  0005start.wmv
Resolution:  640x480 
Duration:  0:10:10
Filesize:  82Mb
После применения скрипта должен получиться такой файл har2.txt:

Код: Выделить весь код
wmv | 0:13:21 | 640x480 | 92Mb
avi | 0:03:52 | 480x360 | 30Mb
mp4 | 0:17:02 | 640x480 | 163Mb
wmv | 0:08:46 | 640x480 | 73Mb
wmv | 0:10:10 | 640x480 | 82Mb
Получается, что в исходном файле, характеристики исходного видео расписаны в 4ех строках.
Из первой строчки, нужно извлечь правую часть до первой встречной точки. В остальных 3ех строках нужно извлечь все, после знака двоеточия и двух пробелов за ним. Извлекаемые результаты поместить в одну строку и поставить между ними разделительный знак и два пробела от этого знака (справа и слева), как на примере har2.txt. Потом начать обрабатывать следующие четыре строки и т.д.

Отправлено: 06:43, 15-02-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Alexander_88:
и два пробела »
А попадётся какой-нибудь 1080? И «поплывёт» Ваша красивая картинка.

Вы для каких целей делаете это преобразование?
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:20, 15-02-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Цитата Iska:
Вы для каких целей делаете это преобразование? »
Я делаю несколько вариантов оформления видео файла (они постоянно добавляются). Первый вариант уже есть, его генерирует программа, второй (в одну строчку) программа не может делать... хочу его генерировать скриптом, чтобы вручную не перекапывать все (файлов не одна тысяча), конечно же для экономия времени.

Цитата Iska:
А попадётся какой-нибудь 1080? И «поплывёт» Ваша красивая картинка. »
Конечно есть и такие. Но все равно есть два пробела перед разрешением, единственное то, что количество чисел больше в самом расширении, поэтому необходимо извлекать именно все символы после двоеточия и двух пробелов (в 2, 3, 4 строках блока)

Отправлено: 07:51, 15-02-2016 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Const strDelimiter = " | "

Dim strSourceFile
Dim strDestinationFile

Dim strContent
Dim strNewContent
Dim objMatch


If WScript.Arguments.Count = 1 Then
	strSourceFile = WScript.Arguments.Item(0)
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If .FileExists(strSourceFile) Then
			strDestinationFile = .BuildPath(.GetParentFolderName(strSourceFile), .GetBaseName(strSourceFile) & "2." & .GetExtensionName(strSourceFile))
			
			With .OpenTextFile(strSourceFile)
				strContent = .ReadAll()
				.Close
			End With
			
			With WScript.CreateObject("VBScript.RegExp")
				.Pattern = _
					"File Name.type:  .*\.(.*)\r\n" & _
					"Resolution:  (.*)\r\n" & _
					"Duration:  (.*)\r\n" & _
					"Filesize:  (.*)\r\n"
				.Global = True
				.IgnoreCase = True
				.MultiLine = True
				
				If .Test(strContent) Then
					strNewContent = ""
					
					For Each objMatch In .Execute(strContent)
						With objMatch
							strNewContent = strNewContent & Trim(.Submatches(0)) & strDelimiter & Trim(.Submatches(2)) & strDelimiter & Trim(.Submatches(1)) & strDelimiter & Trim(.Submatches(3)) & vbCrLf
						End With
					Next
				End If
			End With
			
			With .CreateTextFile(strDestinationFile, True)
				.Write strNewContent
				.Close
			End With
		Else
			WScript.Echo "Can't find source file [" & strSourceFile & "]."
			WScript.Quit 2
		End If
	End With
Else
	WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
	WScript.Quit 1
End If

WScript.Quit 0

Исходный файл указывается аргументом скрипта (также можно просто перетянуть исходный файл на скрипт в Проводнике).
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:35, 15-02-2016 | #4


Ветеран


Сообщения: 558
Благодарности: 5

Профиль | Отправить PM | Цитировать


Спасибо, попробовал перетянуть файл, Все отлично конвертировалось. Как я понимаю путь к файлу в скрипте (как я привык делать) нельзя указать, Сейчас читаю/разбираюсь как указать файл аргументом, наверно мне это больше подойдет, т.к. такие скрипты будут в нескольких папках, каждый скрипт будет обрабатывать свои файлы har.txt, они тоже все в разных папках, поэтому удобней будет наверно аргументом указать, если конечно я правильно понимаю как это работает.

Отправлено: 14:17, 15-02-2016 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - Конвертировать тхт файл с характеристиками видео файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Создать тхт файл с ссылками Alexander_88 Скриптовые языки администрирования Windows 3 14-02-2016 11:57
CMD/BAT - [решено] скопировать n последних строк одного тхт файла и вставить их в конец другого тхт файл Alexander_88 Скриптовые языки администрирования Windows 2 23-11-2015 16:38
помогите с характеристиками 2 видео карт! wap173 Непонятные проблемы с Железом 2 18-01-2015 19:42
CMD/BAT - [решено] Дописать в тхт файл mrtwister Скриптовые языки администрирования Windows 2 04-05-2012 18:07
Любой язык - [решено] из одного тхт файла добавить содержимое во все тхт файлы папки gangsterovich Скриптовые языки администрирования Windows 3 06-05-2011 04:29




 
Переход