Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Создание формы для ввода url в скрипте vbs

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Uragan66



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго дня всем !
Понадобилось переделать один скрипт, но в vbs я практически чайник, поэтому прошу помощи у знающих людей.
Есть скрипт по переименованию каналов в тв плейлистах m3u. В нём для каждого нового плейлиста необходимо вручную вписывать адрес. Начало кода:

Код:
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, хотел добавить форму, так думаю удобнее будет.
По примерам написал следующий код:

Код:
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

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

Всего записей: 35 | Зарегистр. 18-03-2012 | Отправлено: 09:31 06-05-2019 | Исправлено: Uragan66, 10:16 06-05-2019
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Uragan66
Что мешает получить адрес примерно так
Dim URL
URL = InputBox("Введите URL")
 
и тогда будет вот так
oXMLHTTP.Open "GET", URL, 0

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:27 07-05-2019
Uragan66



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
Спасибо !
По Вашему примеру работает хорошо.
У меня тоже получилось без экранирования кавычек  

Код:
oXMLHTTP.Open "GET", InputBox ("Введите адрес плейлиста", "URL", "http://"), 0

Этот вопрос то решился, хотя и не совсем корректно скрипт срабатывает. Если сам скрипт в кодировке UTF-8, то в форме кракозябры, но отрабатывает скрпит нормально, на выходе файл с заменами.
Но если скрипт перевести в win-1251, в форме нормальные русские буквы, но скрипт не отрабатывает задание, на выходе файл без изменений.
Ну это то ладно, в форме можно и на английском написать.
Код замены у меня такой:

Код:
'ЗАМЕНА --------------------
Set objFSO = CreateObject("Scripting.FileSystemObject")
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("C:\tv\tv.m3u", ForReading)
 
strText = objFile.ReadAll
objFile.Close
 
strOldText = "Заменить это предложение"'внутри кавычек старый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
strNewText = "Заменить на это"'внутри кавычек новый текст (название канала, формат потока, ip или домен и т.д) чувствительно к регистру!
 
strNewText = Replace(strText, strOldText, strNewText)
 
'укажите ТОТ ЖЕ путь в строке ниже
Set objFile = objFSO.OpenTextFile("C:\tv\tv.m3u", ForWriting)
objFile.WriteLine strNewText
objFile.Close
'КОНЕЦ ДИАЛОГА ЗАМЕНЫ --------------------

Нельзя ли его упростить, чтобы заменяемые выражения и на что заменить были прописаны в текстовом файле, а в самом скрипте только указать этот текстовый файл ?

Всего записей: 35 | Зарегистр. 18-03-2012 | Отправлено: 07:34 07-05-2019
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Создание формы для ввода url в скрипте vbs


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru