Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
1

Создание формы для ввода url в скрипте vbs

04.05.2019, 21:13. Просмотров 546. Ответов 11
Метки нет (Все метки)

Здравствуйте!
Понадобилось переделать один скрипт, но в vbs я практически чайник, поэтому прошу помощи у знающих людей.
Есть скрипт по переименованию каналов в тв плейлистах m3u. В нём для каждого нового плейлиста необходимо вручную вписывать адрес. Начало кода:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'в строке ниже, между кавычек, введите ссылку на самообновляемый плейлист
oXMLHTTP.Open "GET", "http://", 0
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'путь сохранения (не забудьте создать папку на диске! скрипт НЕ ПИШЕТ в корень диска и не создает папку сам!)
'по умолчанию вы должны создать папку с названием tv на диске C
oADOStream.SaveToFile "C:\tv\tv.m3u", 2
 
Const ForReading = 1
Const ForWriting = 2
Дабы не открывать скрипт каждый раз для вставки url, хотел добавить форму, так думаю удобнее будет.
По примерам написал следующий код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", "inputbox (" & Chr(34) & "Введите адрес плейлиста" & Chr(34) & ", " & Chr(34) & "" & Chr(34) & ", " & Chr(34) & "http://" & Chr(34) & ")", 0
oXMLHTTP.Send
Set oADOStream = CreateObject("ADODB.Stream")
oADOStream.Mode = 3
oADOStream.Type = 1
oADOStream.Open
oADOStream.Write oXMLHTTP.responseBody
'путь сохранения (не забудьте создать папку на диске! скрипт НЕ ПИШЕТ в корень диска и не создает папку сам!)
'по умолчанию вы должны создать папку с названием tv на диске C
oADOStream.SaveToFile "C:\tv\tv.m3u", 2
 
Const ForReading = 1
Const ForWriting = 2
Но работать он не хочет, жалуется, что указанный протокол неизвестен.

Создание формы для ввода url в скрипте vbs


Как правильно вставить нужную мне форму, подскажите, пожалуйста ?
Заранее благодарен за любые подсказки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2019, 21:13
Ответы с готовыми решениями:

VBS. Как зайти на роутер с заполнением формы ввода логина и пароля?
Здравствуйте! Вот стандартный вход, до формы Dim strUrl, oIE, oTag strUrl =...

Создание формы для ввода данных в БД
Помогите пожалуйста, нужно создать форму для ввода данных в базу данных mysql, база данных содержит...

Создание формы для ввода данных в БД на SQL
Здравствуйте! Скоро сдача курсовой работы, а сильно большого опыта работы на C# не имею..... ...

Создание формы для ввода информации в таблицу
Добрый день! Помогите в создании формы для базы данных "Деканат". Необходимо: -"Создать...

11
102 / 62 / 10
Регистрация: 13.02.2017
Сообщений: 178
06.05.2019, 15:37 2
Visual Basic
1
oXMLHTTP.Open "GET", InputBox ("Введите адрес плейлиста", "Адрес", "http://"), 0
1
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
06.05.2019, 16:48  [ТС] 3
Sur_L, Спасибо!
Так я пробовал раньше, но скрипт работает не совсем корректно.
Если сам скрипт в кодировке UTF-8, отрабатывает он как положено, выходной файл с нужными изменениями. Но в форме ввода url вместо русских букв ("Введите адрес плейлиста", "Адрес") - кракозябры.
Ежели скрипт сделать в win 1251, буквы в форме русские, но скрипт не отрабатывает задание, выходной файл получается без изменений.
0
es geht mir gut
11178 / 4655 / 1170
Регистрация: 27.07.2011
Сообщений: 11,366
Завершенные тесты: 1
06.05.2019, 16:53 4
Цитата Сообщение от Uragan66 Посмотреть сообщение
Но в форме ввода url вместо русских букв ("Введите адрес плейлиста", "Адрес") - кракозябры.
Это же для подсказки пользователю. Напишите по английски.
1
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
06.05.2019, 17:05  [ТС] 5
Цитата Сообщение от SoftIce Посмотреть сообщение
Напишите по английски.
Думал уже об этом, наверное так и придётся сделать, а то с кракозябрами некрасиво.

Ещё небольшой вопрос по этому скрипту. сам код замены выглядит так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Set objFSO = CreateObject("Scripting.FileSystemObject")
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("C:\tv\tv.m3u", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strOldText = "getstream"'внутри кавычек старый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
strNewText = "manifest.m3u8"'внутри кавычек новый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
 
strNewText = Replace(strText, strOldText, strNewText)
 
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("C:\tv\tv.m3u", ForWriting)
objFile.WriteLine strNewText
objFile.Close
Можно ли в него что добавить, чтобы он обрабатывал только первое найденное слово и не искал дальше для замены ?
0
es geht mir gut
11178 / 4655 / 1170
Регистрация: 27.07.2011
Сообщений: 11,366
Завершенные тесты: 1
06.05.2019, 19:46 6
Цитата Сообщение от Uragan66 Посмотреть сообщение
Replace
Описание
Функция возвращает строку, в которой одна последовательность символов заменена на другую указанное количество раз.
Синтаксис
Replace(Expression, Find, Replace[, Start[, Count[, Compare]])
Параметры
Expression - выражение типа String, содержащее строку, в которой требуется произвести замену.
Find - выражение типа String, указывающее последовательность символов, которую требуется заменить.
Replace - выражение типа String, указывающее последовательность символов, на которую требуется заменить Find.
Start - выражение типа Long, определяющее начальную позицию поиска. По умолчанию принимает значени 1.
Count - выражение типа Long, указывающее количество замен. По умолчанию принимает значение -1, т.е. заменяет все найденные значения.
Compare - числовой параметр, указывающий метод сравнения.
1
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
06.05.2019, 20:55  [ТС] 7
SoftIce, Спасибо !
Так всё получилось:
Visual Basic
1
strNewText = Replace(strText, strOldText, strNewText, 1)
Замена происходит только в первом найденном выражении.
Придумать бы ещё как сократить код, в исходном файле бывает до 1000 выражений нужно заменить, и на все потребуется код замены отдельный.
0
es geht mir gut
11178 / 4655 / 1170
Регистрация: 27.07.2011
Сообщений: 11,366
Завершенные тесты: 1
06.05.2019, 21:28 8
Цитата Сообщение от Uragan66 Посмотреть сообщение
на все потребуется код замены отдельный
Можно попробовать изменения записать в массив и в цикле менять.

Пример для понимания
1
Миниатюры
Создание формы для ввода url в скрипте vbs  
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
06.05.2019, 22:05  [ТС] 9
SoftIce, спасибо, попробую, может получится.
В идеале было бы подсунуть скрипту текстовый файл для замены, но как в скрипте указать из какой строчки этого файла брать и в какую в исходном файле вставлять... Вряд ли это возможно.
0
es geht mir gut
11178 / 4655 / 1170
Регистрация: 27.07.2011
Сообщений: 11,366
Завершенные тесты: 1
06.05.2019, 22:18 10
Цитата Сообщение от Uragan66 Посмотреть сообщение
Вряд ли это возможно.
Всё возможно.
0
11 / 11 / 0
Регистрация: 27.03.2017
Сообщений: 98
06.05.2019, 22:45  [ТС] 11
Цитата Сообщение от SoftIce Посмотреть сообщение
Всё возможно
Ну в принципе да... но для меня сколько времени пройдёт, если досконально изучить VBS...
Попытаюсь, что получится...
0
102 / 62 / 10
Регистрация: 13.02.2017
Сообщений: 178
07.05.2019, 02:06 12
Цитата Сообщение от Uragan66 Посмотреть сообщение
но для меня сколько времени пройдёт,
Сколько бы не прошло, лишь бы на пользу. Пишите свой скрипт в VB6, там хоть подсказки по синтаксису есть. Переведете потом в скрипт в любой момент, после отладки в IDE. Писать с нуля в нотепаде трудно.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2019, 02:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Создание универсальной формы ввода для большого объёма данных
Добрый день. Перечитал много тем на форуме, но так и не смог найти что мне нужно. Прошу помочь с...

Создание формы для ввода новых значений и изменения старых в таблицах
Продолжаю изучать Access в режиме практики. Подскажите пожалуйста , как создать форму, с помощью...

Неполадка с русскими словами в VBS скрипте
Здравствуйте. Возникла проблема с русскими словами, используемые в скрипте. Код: Option...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.