Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 15.04.2019
Сообщений: 29
VBS

Глубокий поиск по строке плейлиста

18.03.2020, 07:53. Показов 1474. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется плейлист IPTV, в формате

Code
1
2
#EXTINF:0 CUID="277" tvg-name="1:1137" tvg-id="1:1137" arc-time="120" catchup="shift" catchup-days="5" tvg-logo="http://stb.tv.fun/images/logo_chanel/CINEMAULTRAHD200.png" group-title="UHD 4K",UltraHD Cinema
http://tv.fun/2aWRlby5tM3U4P3Rva2VuPVtzdGJfdG9rZW5dIiwiYSI6Imh0dHA6Ly9zdHI1LmZveC10di5mdW46OTk4MS9VbHRyYUhEQ2luZW1hNEsvdmlkZW8tdGltZXNoaWZ0X2Ficy1bdGltZV9zdGFydF0ubTN1OD90b2tlbj1bc3RiX3Rva2VuXVtjdXJyX3RpbWVdIiwibCI6InBvbGttb21vIiwicCI6InBvbGttb21vYTAyMDMxOTkiLCJjIjoiMjc3IiwidCI6ImEyYzYxOWZiNmJhZjBlYjgwMDFmMTBmOGI1NmMzMWQ2IiwiZCI6IjE0MjYwIiwiciI6IjExNDI1OCJ9eyJ1IjoiaHR0cDovL3N0cjUuZm94LXR2LmZ1bjo4MDgwL1VsdHJhSERDaW5lbWE0Sy9/index.m3u8

Меняю нужные названия с помощью скрипта:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", "http://tv.fun/tv.m3u", 0
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
oADOStream.SaveToFile "С:\TV\test.m3u", 2
 
Const ForReading = 1
Const ForWriting = 2
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("С:\TV\test.m3u", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strOldText = "UHD 4K",UltraHD Cinema"'
strNewText = "Кино и сериалы",UltraHD Cinema"'
 
strNewText = Replace(strText, strOldText, strNewText)
 
Set objFile = objFSO.OpenTextFile("D:\TV\test.m3u", ForWriting)
objFile.WriteLine strNewText
objFile.Close
Но так как присутствуют двойные кавычки, замены не происходит, пробовал косые, двойные-двойные кавычки, тройные в конце, не работает.

В идеале хотелось бы конечно после поиска например UltraHD Cinema в этой же строке скрипт искал категорию UltraHD Cinema и другие параметры, которые я бы мог менять по своему усмотрению, но именно в строке в не во всем листе.

p.s. почему не могу поменять категорию UHD 4K на Кино и сериалы, т.к. в этой категории лежат другие каналы которые не относятся к категории Кино и сериалы, если скрипт пройдется по всему листу, будет тихий ужас.
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2020, 07:53
Ответы с готовыми решениями:

Парсинг плейлиста формата M3U. Несколько разных вариантов плейлиста
Есть такой формат m3u По крайней мере знаю, что этот формат создаёт WinAmp и вроде медиаплеер. Я скачал несколько плелистов разных, один...

Глубокий запрос
Добрый день! Скажите, пожалуйста, возможно ли получить все группы зная факультет по схеме(прикрепленное изображение)? Или же лучше сделать...

Глубокий апгрейд ПК
На данный момент есть компьютер: процессор - Intel Core 2 Duo E650; мат.плата - Asus P5K; видеокарта - NVidia GeForce 860 GTS; оперативная...

4
6986 / 2876 / 1106
Регистрация: 06.06.2017
Сообщений: 9,769
18.03.2020, 12:01
Так:
Visual Basic
1
2
strOldText = """UHD 4K"",UltraHD Cinema"
strNewText = """Кино и сериалы"",UltraHD Cinema"
Цитата Сообщение от positivepolk Посмотреть сообщение
в этой же строке скрипт искал категорию UltraHD Cinema и другие параметры, которые я бы мог менять по своему усмотрению, но именно в строк
Тогда нужно подключать регулярные выражения. Если не знаете, как с ними работать, описывайте конкретную задачу.
0
1 / 1 / 0
Регистрация: 15.04.2019
Сообщений: 29
19.03.2020, 13:05  [ТС]
Все что нужно это чтобы искал по строкам - Кино и сериалы",UltraHD Cinema и переименовывал - Суперкино",UltraHD Cinema!

Для каждого каждого канала готов описать, не так много конфликтных категории, кавычки пробовал разные!

Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'в строке ниже, между кавычек, введите ссылку на самообновляемый плейлист
oXMLHTTP.Open "GET", "http://192.168.88.100:1000/playlist.m3u8", 0
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'путь сохранения (не забудьте создать папку на диске! скрипт НЕ ПИШЕТ в корень диска и не создает папку сам!)
'по умолчанию вы должны создать папку с названием tv на диске C
oADOStream.SaveToFile "D:\TV\superlist.m3u", 2
 
Const ForReading = 1
Const ForWriting = 2
 
'ЗАМЕНА --------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("D:\TV\superlist.m3u", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strOldText = "getstream"'внутри кавычек старый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
strNewText = "manifest.m3u8"'внутри кавычек новый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
 
strNewText = Replace(strText, strOldText, strNewText)
 
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("D:\TV\superlist.m3u", ForWriting)
objFile.WriteLine strNewText
objFile.Close
'КОНЕЦ ДИАЛОГА ЗАМЕНЫ --------------------
'ЗАМЕНА --------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("D:\TV\superlist.m3u", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strOldText = "Кино"'внутри кавычек старый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
strNewText = "Кино и сериалы"'внутри кавычек новый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
 
strNewText = Replace(strText, strOldText, strNewText)
 
Set objFile = objFSO.OpenTextFile("D:\TV\superlist.m3u", ForWriting)
objFile.WriteLine strNewText
objFile.Close
'КОНЕЦ ДИАЛОГА ЗАМЕНЫ --------------------

Ниже исправляет конфликты, например - Кино и сериалыхит , исправляет в - Кинохит!

Но в категории 4К каналы, лежат каналы которые должны быть в разных категориях
Плейлист формата:
Code
1
2
#EXTINF:0 CUID="277" tvg-name="1:1137" tvg-id="1:1137" arc-time="120" catchup="shift" catchup-days="5" tvg-logo="http://stb.tv.fun/images/logo_chanel/CINEMAULTRAHD200.png" group-title="UHD 4K",UltraHD Cinema
http://tv.fun/2aWRlby5tM3U4P3Rva2VuPVtzdGJfdG9rZW5dIiwiYSI6Imh0dHA6Ly9zdHI1LmZveC10di5mdW46OTk4MS9VbHRyYUhEQ2luZW1hNEsvdmlkZW8tdGltZXNoaWZ0X2Ficy1bdGltZV9zdGFydF0ubTN1OD90b2tlbj1bc3RiX3Rva2VuXVtjdXJyX3RpbWVdIiwibCI6InBvbGttb21vIiwicCI6InBvbGttb21vYTAyMDMxOTkiLCJjIjoiMjc3IiwidCI6ImEyYzYxOWZiNmJhZjBlYjgwMDFmMTBmOGI1NmMzMWQ2IiwiZCI6IjE0MjYwIiwiciI6IjExNDI1OCJ9eyJ1IjoiaHR0cDovL3N0cjUuZm94LXR2LmZ1bjo4MDgwL1VsdHJhSERDaW5lbWE0Sy9/index.m3u8
Добавлено через 29 минут
Анализ и работа в рамках данной строки интересна тем, что можно заменить например Телегид, либо Логотип канала, по заранее заданному шаблону, но это скорей всего уже нужен парцел, в данном же скрипте нужна корректная правка тегов!
0
6986 / 2876 / 1106
Регистрация: 06.06.2017
Сообщений: 9,769
19.03.2020, 15:47
Лучший ответ Сообщение было отмечено positivepolk как решение

Решение

Цитата Сообщение от positivepolk Посмотреть сообщение
Все что нужно это чтобы искал по строкам - Кино и сериалы",UltraHD Cinema и переименовывал - Суперкино",UltraHD Cinema!
Ну, и в чём проблема?
Visual Basic
1
2
strOldText = "Кино и сериалы"",UltraHD Cinema"
strNewText = "Суперкино"",UltraHD Cinema"
Цитата Сообщение от positivepolk Посмотреть сообщение
по заранее заданному шаблону
Пишите шаблон.
Цитата Сообщение от positivepolk Посмотреть сообщение
уже нужен парцел
А по-русски?
0
1 / 1 / 0
Регистрация: 15.04.2019
Сообщений: 29
20.03.2020, 09:48  [ТС]
Спасибо, действительно так экранирует!

python parcel, php parcel!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2020, 09:48
Помогаю со студенческими работами здесь

Насколько глубокий find?
Добрый день. Есть очень глубокое дерево вида: <!-- main level --> <div id="tree"> <!-- level 1 --> <span...

глубокий сон power-down на Mega32
Никогда не пользовался функциями power manakiment на AVR. Сегодня понадобилось на mego32 настроить глубокий сон power-down. В секции main...

Определить количество уровней подкаталогов, вывести самый глубокий
Написать shell-процедуру, которая: • Определяет высоту поддерева каталогов, начиная от каталога, передаваемого в качестве первого...

Сколько качков нужно сделать, чтобы создать глубокий вакуум?
есть насос см рис. начальное давление атмосферное. клапаны 1 и 2 работают таким образом чтобы воздух откачивался из ёмкости. какое давление...

Подсчитать количество вхождений буквы «о» в строке «прямой поиск в текстовой строке»
Подсчитать количество вхождений буквы «о» в строке «прямой поиск в текстовой строке» Заменить в вышеприведенной стоке слово «прямой» на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru