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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
zhudionis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
А не будет наглостью попросить, сделать скрипт для обратной выгрузки из такого XML в мой XLS?
 
 

Всего записей: 116 | Зарегистр. 25-05-2009 | Отправлено: 06:23 28-11-2018 | Исправлено: zhudionis, 06:26 28-11-2018
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, zhudionis
Подробнее...

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 19:04 28-11-2018 | Исправлено: Alex_Piggy, 11:46 29-11-2018
zhudionis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Для меня это уже сложновато, надеюсь, разберусь.
Это тоже VBA? Можно встраивать в любой файл?
 
Понял, это VBS. Но останавливается на 130 строке. Но файл создает и это круто!!!
Вот пример всего файла Ссылка
 
С другими файлами пока ошибок нет.
Вы не представляете насколько упростили работу, готов даже заплатить за такое!!!!!

Всего записей: 116 | Зарегистр. 25-05-2009 | Отправлено: 05:01 29-11-2018 | Исправлено: zhudionis, 05:34 29-11-2018
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, zhudionis

Цитата:
Понял, это VBS. Но останавливается на 130 строке. Но файл создает и это круто!!!

Создает, но не весь. Из ~9000 строк только 4000 из-за "=220 В". Исправить - поставьте перед oRange.Value2 = TransposeArray2D(aData)  
oRange.NumberFormat = "@"
 
Заметил - не для всех STATUSES или ANALOGS есть имена. Пример - RTU из строки 1533  <RTU RTUNum="19" RTUName="ШОТ" RTUObjPfx="+ (да)"> . Сейчас - пишет пустые строки.
Проверьте все остальное своими глазами...
UPD: Та где нет имен есть RTUObjPfx="+ (да)" . Что это такое? Поищите полное описание этих XML.

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 08:53 29-11-2018 | Исправлено: Alex_Piggy, 08:59 29-11-2018
zhudionis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Знак равенства, как я понял, останавливает скрипт, ясно.
 
То что нет имен у Statuses и Analogs - не страшно, главное ,место для имени в Excel остается.
Для себя решили, что имя быть ДОЛЖНО -  правило хорошего тона.
 
RTUObjPfx="+ (да)" - не обязательно, хотя подумываю..... не важно короче
 
 
Вообще файл - ничто иное, как база данных, описание переменных в одной из СКАДА программ.
RTUObjPfx="+ (да)" - говорит о том, что в данном RTU имя RTU будет добавлено  к наименованию параметра.
например RTUName="Оренбурская СЭС-5 КРУ-10 яч.206"
и StatusName="яч.206 ТСН-2 положение тележки вкачена"
 в итоге программа покажет: Оренбурская СЭС-5 КРУ-10 яч.206 - яч.206 ТСН-2 положение тележки вкачена
 
 
Вообще файл создается и средствами самой программы, но делать это совсем неудобно, щелкать мышкой на каждом параметре по несколько раз...... Вот и задумался про Excel, разработчики почему-то про него забыли(

Всего записей: 116 | Зарегистр. 25-05-2009 | Отправлено: 10:05 29-11-2018 | Исправлено: zhudionis, 10:32 29-11-2018
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
zhudionis

Цитата:
Знак равенства, как я понял, останавливает скрипт, ясно.

Нет/не совсем.  Знак равенства в начале строки для Excel означает, что это формула.
oRange.NumberFormat = "@" - это принудительно рассматривать все только как текст. То есть проблема пропадет.
 

Цитата:
 
То что нет имен у Statuses и Analogs - не страшно, главное ,место для имени в Excel остается.  
 Для себя решили, что имя быть ДОЛЖНО -  правило хорошего тона.
RTUObjPfx="+ (да)" - не обязательно, хотя подумываю..... не важно короче

Замените
  aData(cStatuses - 1, aDataPos) = oNode.getAttribute("StaDesc")
На  
  aData(cStatuses - 1, aDataPos) =IIF(oRTU.getAttribute("RTUObjPfx") <> "", oRTU.getAttribute("RTUName") & " ", "") & oNode.getAttribute("StaDesc")
И
  aData(cAnalogs - 1, aDataPos) = oNode.getAttribute("AnaDesc")
На
  aData(cAnalogs - 1, aDataPos) =IIF(oRTU.getAttribute("RTUObjPfx") <> "", oRTU.getAttribute("RTUName") & " ", "") & oNode.getAttribute("AnaDesc")
Обновил в предыдущем посте.

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 11:30 29-11-2018 | Исправлено: Alex_Piggy, 11:46 29-11-2018
zhudionis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Да, да ))) это я и имел ввиду)))
 
Добавлено:

Цитата:
Замените  
  aData(cStatuses - 1, aDataPos) = oNode.getAttribute("StaDesc")  
На  
  aData(cStatuses - 1, aDataPos) =IIF(oRTU.getAttribute("RTUObjPfx") <> "", oRTU.getAttribute("RTUName") & " ", "") & oNode.getAttribute("StaDesc")  
И  
  aData(cAnalogs - 1, aDataPos) = oNode.getAttribute("AnaDesc")  
На  
  aData(cAnalogs - 1, aDataPos) =IIF(oRTU.getAttribute("RTUObjPfx") <> "", oRTU.getAttribute("RTUName") & " ", "") & oNode.getAttribute("AnaDesc")  
Обновил в предыдущем посте.

Вы не правильно поняли, может отсутствовать и AnaDesc и RTUObjPfx, они никак не связаны
 
вот как это в программе
Ссылка

Всего записей: 116 | Зарегистр. 25-05-2009 | Отправлено: 11:31 29-11-2018 | Исправлено: zhudionis, 12:31 29-11-2018
zhudionis



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Но идея с именем, мне понравилась.
Если нет имени группы то заменять его именем RTU - феноменально!!!

Всего записей: 116 | Зарегистр. 25-05-2009 | Отправлено: 04:21 30-11-2018
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. ТУТ есть скрипт, который, при запуске, выдаёт следующую ошибку и на XP, и на Windows 7 x64:
---------------------------
Строка:    5
Символ:    1
Ошибка:    Индекс выходит за пределы допустимого диапазона
Код:    800A0009
---------------------------
 
Это странно, учитывая давность публикации скрипта, который публиковался в книге "Windows. Народные советы" Александра Климова и Игоря Чеботарёва аж за 2006 год.
 

 
Не могу понять в чём там ошибка и почему скрипт не работает. Подскажите, пожалуйста.
Заранее благодарю.

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 08:50 27-12-2018
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AVanti473
нужно прочитать несколько строк текста после скрипта, там будет описан метод запуска с двумя параметрами.

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 10:01 27-12-2018
AVanti473



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tilks

Цитата:
нужно прочитать несколько строк текста после скрипта, там будет описан метод запуска с двумя параметрами

 
Понятно. Спасибо. Этот момент, я, почему-то упустил.  
Для примера сделал так:
C:\Script.vbs "123" "C:\Program Files"
Всё работает. ))) Ещё раз благодарю!

Всего записей: 1179 | Зарегистр. 05-04-2011 | Отправлено: 14:09 27-12-2018
ikalichkin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток! Извините, ежели в этой ветке спрошу про надёжный отладчик скриптов под Win10 32/64. Можете что-нибудь посоветовать, а лучше - дать ссылку?

Всего записей: 3228 | Зарегистр. 04-05-2009 | Отправлено: 19:27 04-01-2019
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ikalichkin, насчёт надёжности , не знаю, других не видел. Есть тема в варезнике.
http://www.vbsedit.com/

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 19:34 04-01-2019
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Нашел оболочку для работы с файлами (с примером):
http://forum.script-coding.com/viewtopic.php?id=10092
 
Скопировал нижний весь код в файл.js, создал 123.txt, запустил и получил следующее:

 
Подскажите как запустить в Windows 10?

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 17:32 18-01-2019 | Исправлено: Deoptimizer, 17:34 18-01-2019
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время, Deoptimizer
Там опечатка в  6 строке -    
WshShell.Run("%WinDir%\\SysWow64\\wscript.exe \"" + WScript.ScriptFullName + "\"", 1, 0);
Если это для того же WinPE - то Вам нужно проверить наличие объектов "SAPI.spFileStream" "SAPI.spMemoryStream"  "ADODB.Recordset". Главное - "SAPI.spFileStream"
var Stream = new ActiveXObject("SAPI.spFileStream")
или
Set Stream = CreateObject("SAPI.spFileStream")
PS. Других способов работы с бинарными файлами в CMD/VBS/JS нативными средствами я не знаю. Или спрашивайте в теме про PowerShell (если он есть на WinPE; в Сценарии для Windows Вам могут подсказать, но там задан не тот вопрос).  
Или дополняете образ WinPE тем же dd for windows , xdelta или добавлять и регистрировать adodb.dll (может проще ставить MDAC?).

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 09:53 19-01-2019 | Исправлено: Alex_Piggy, 10:07 19-01-2019
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy

Цитата:
Если это для того же WinPE - то Вам нужно проверить наличие объектов "SAPI.spFileStream" "SAPI.spMemoryStream"  "ADODB.Recordset". Главное - "SAPI.spFileStream"  
var Stream = new ActiveXObject("SAPI.spFileStream")  
или  
Set Stream = CreateObject("SAPI.spFileStream")  

Увы, в WinPE оно ругается на отсутствие модуля "ScriptControl" - куда уж другие.
 

Цитата:
Или дополняете образ WinPE тем же dd for windows , xdelta или добавлять и регистрировать adodb.dll (может проще ставить MDAC?).

dd получается меньший по размеру вариант, если регистрировать adodb.dll - там больше dll файлов нужно и размер больше получится.
 
Может найдутся какие-то микропрограммы для патчинга файлов(для хакерских целей)?
Вроде когда-то находил подобное.
 
Добавлено:
Спасибо Вам.

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 12:03 19-01-2019
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть скрипт для перезагрузки роутера

Цитата:
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13)
WScript.Sleep 500
oShell.SendKeys "reboot" & chr(13)
WScript.Sleep 500
oShell.SendKeys "enter" & chr(13)

На Вин ХР работал,  на Вин 10 не работает. Выскакивает такое окно
 

 
Может кто то починить?

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 00:57 20-01-2019 | Исправлено: villa777, 00:58 20-01-2019
ffirefox

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Windows 10 не устанавливает по умолчанию telnet.
Надо установить его самостоятельно.
Идём в Панель управления->Программы->Программы и компоненты->Включение или отключение компонентов Windows.
Отмечаем галочкой "Клиент Telnet"

Всего записей: 50 | Зарегистр. 07-11-2006 | Отправлено: 04:47 20-01-2019
villa777



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ffirefox
 
Спасибо, заработало.

Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 10:47 20-01-2019
urodliv



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа. Нужно придать мне правильное направление.
Написал скрипт поиска и удаления файлов старше определённого количества дней. Мне удалось выяснить, что вход в процедуру происходит, а в цикл нет. В чём причина такого поведения?
 
Скрипт

----------
Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

Всего записей: 6684 | Зарегистр. 29-04-2009 | Отправлено: 22:57 10-02-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru