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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
fff222fffy1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашёл пример чтения бинарных файлов:

Код:
 
    Function ReadBinaryFile(filename)
        Dim bArr
        With CreateObject("ADODB.Stream")
            .Type = 1 'adTypeBinary
            .Open
            .LoadFromFile filename
            bArr = .Read
            .Close
            ReadBinaryFile = bArr
        End With
    End Function

Однако, насколько я смог понять, этот метод не позволяет читать файлы по частям.
Есть ли какие-то альтернативы для чтения частями? Нужно для работы с очень большими файлами.
 
Добавлено:
С чтением по частям разобрался: есть свойство Size, показывающее размер в байтах, есть необязательных параметр у метода Read, позволяющий указать, сколько байт следует прочесть.
А вот с дозаписью затык.
Получается только сформировать весь объём данных в объекте ADODB.Stream, а затем разом записать его в файл.
А вот можно ли дозаписывать в файл и, если можно, то как, я пока не понял.

Всего записей: 30 | Зарегистр. 07-01-2010 | Отправлено: 11:19 07-03-2017
Dobrezov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь. Скрипт:

Цитата:
strSoundFile = "C:\Sounds\cmdmp3new\NoCode.wav"
Set objShell = CreateObject("Wscript.Shell")
strCommand = "sndrec32 /play /close " & chr(34) & strSoundFile & chr(34)
objShell.Run strCommand, 0, True

В результате:

Всё это нужно для воспроизведения звука при определённых обстоятельствах в 1С. Работало-перестало. При каких обстоятельствах непонятно. В скрипт вынесено из 1С для удобства тестирования.
Если не по адресу обратился за помощью - направление подскажите.
Спасибо!

Всего записей: 3410 | Зарегистр. 15-01-2006 | Отправлено: 17:06 07-03-2017 | Исправлено: Dobrezov, 17:09 07-03-2017
a929151



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

Код:
Set oVoice = CreateObject("SAPI.SpVoice")  
Set oSpFileStream = CreateObject("SAPI.SpFileStream")  
oSpFileStream.Open "E:\1C_Bases\Sounds\NoCode.wav"  
oVoice.SpeakStream oSpFileStream  
oSpFileStream.Close  


Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 17:12 07-03-2017
Dobrezov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Извиняюсь! Забыл написать. На 2012R2 это всё.
То, что предлагается - работает на 2008R2, на 2012R2 вываливается в ошибку.

 
P.S. В предыдущем посту исправил путь, т.е. ошибок на рабочей машине в этом плане нет.  
 
 
 

Всего записей: 3410 | Зарегистр. 15-01-2006 | Отправлено: 17:16 07-03-2017 | Исправлено: Dobrezov, 17:21 07-03-2017
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на 2012R2 файл sndrec32.exe имеется?

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 17:23 07-03-2017 | Исправлено: a929151, 17:24 07-03-2017
Dobrezov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Поиском не нашёл. А где должен быть?

Всего записей: 3410 | Зарегистр. 15-01-2006 | Отправлено: 17:32 07-03-2017
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dobrezov, нет не должно, но ты же через него пытаешься звук воспроизвести.
отсюда и сообщение что файл не найден
 
 
 
Добавлено:
C:\WINDOWS\System32\sndrec32.exe

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 17:35 07-03-2017
Dobrezov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Тут такое дело... Я ориентируюсь на то, что мне админ 1С даёт. Ситуация с его слов следующая: работало, а сейчас не работает.
Скрипт тоже от него.
Ок. Как можно решить данную проблему? За любой совет благодарен буду. К самостоятельному решению проблемы не готов.  

Всего записей: 3410 | Зарегистр. 15-01-2006 | Отправлено: 17:39 07-03-2017 | Исправлено: Dobrezov, 17:43 07-03-2017
a929151



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
скачать фалй sndrec32.exe
http://workupload.com/file/a6NVUJz
в скрипте дописать путь к этому файлу

Всего записей: 1362 | Зарегистр. 30-03-2016 | Отправлено: 17:46 07-03-2017
Dobrezov



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a929151
Спасибо! Заработало.
P.S. После перезагрузки заработало то, что ранее отказывалось. Глюк словили какой-то...
 

Всего записей: 3410 | Зарегистр. 15-01-2006 | Отправлено: 17:56 07-03-2017 | Исправлено: Dobrezov, 18:46 07-03-2017
Proshaa

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dobrezov
здесь более корректное решение. "завязано" только на сам звуковой файл.  
админ чего-то удалил/переместил - вот и не работает

----------
Если ссылки в моих постах не работают - ищите здесь

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 18:52 07-03-2017
MisHel64



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, а подскажите, почему не работает вот така конструкция:

Код:
Sub strLstAdd(ByRef strOrg, ByVal strAdd As String = "")

Ругается: шибка компиляции Microsoft VBScript: Предполагается наличие ')'
Или как правильно задавать необязательные параметры со значением по умолчанию для VBScript, если он вообще это умеет.
PS: VbsEdit бы еще не жадный...

Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 10:47 12-03-2017 | Исправлено: MisHel64, 10:52 12-03-2017
Proshaa

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
необязательный параметр: Optional

----------
Если ссылки в моих постах не работают - ищите здесь

Всего записей: 3079 | Зарегистр. 10-01-2011 | Отправлено: 13:10 12-03-2017
MisHel64



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрался. Proshaa Optional в VBScript не поддерживается, а вопрос был именно по нему.
Нашел финты ушами позволяющие это сделать, но решил обойтись без них.

Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 21:18 12-03-2017
KUBIK23

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи, прошу помощи.  
Как автоматически подтягивать дополнительные ящики к профилю?
 
Для понимания задачи. Имеется несколько отделов в организации. У некоторых отделов помимо личных ящиков имеются еще дополнительные ( например info@org.ru). Проверку привязки пользователя к отделу думаю осилю, а вот с данной задачей справиться не смогу, ибо знания пока скудны))
Буду крайне благодарен за помощь

Всего записей: 1 | Зарегистр. 17-03-2017 | Отправлено: 20:06 17-03-2017
fff222fffy1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подозреваю, что это невозможно, но вдруг.
Нет ли какой-нибудь хитрой возможности узнать скрипту, с какого именно ярлыка (если с ярлыка) он был запущен?

Всего записей: 30 | Зарегистр. 07-01-2010 | Отправлено: 14:08 22-03-2017
Laserje18

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста!
Есть 2 массива, в одном имена переменных в другом значения переменных, как можно переменным присвоить их значения?

Код:
a = Array(username,pass,on)
b = Array("Anya","12345","y")
For i = 0 To 2
  a(i) = b(i)
Next
 

Всего записей: 64 | Зарегистр. 11-09-2012 | Отправлено: 10:21 24-03-2017
Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Laserje18
http://www.script-coding.com/WSH/Dictionary.html

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 11:49 24-03-2017
Laserje18

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tilks, спасибо!
Про существование объекта Dictionary я в курсе, только мой вопрос не в том, как сопоставить ключ и его значение, вопрос в том, как, загнав переменные в один массив, а их значения в другой массив, присвоить переменным их значения, если не ошибаюсь, на PHP это функция compact(), как её реализовать на vbs ?
 
Ещё один вопрос, что происходит с массивом, если его не объявлять, сделав цикл по элементам массива, за пределами цикла доступа к элементам массива уже не будет, фактически, окончание цикла для массива будет командой "Erase", да?  Но и в самом цикле, после обращения к элементу, повторно к нему обратиться уже нельзя, как бы элементу массива после обращения к нему присвоили значение "vbNullString" правильно же?

Код:
For Each a In Array(username,pass,on)
  MsgBox a
Next

Всего записей: 64 | Зарегистр. 11-09-2012 | Отправлено: 18:27 27-03-2017
Parazit111



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет, такая задача.
Вот у меня есть скрипт, и я его запускаю с разным количеством аргументов.
 

Код:
 
Cnt = WScript.Arguments.Count
For i = 0 To Cnt - 1
 MsgBox WScript.Arguments(i)
'sss = Array(WScript.Arguments(i))
'ddd = join(sss)
' MsgBox ddd
Next
 

 
 
Как мне объединить весь этот массив аргументов в одну строку?

Всего записей: 36 | Зарегистр. 19-01-2017 | Отправлено: 13:12 29-03-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 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