Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

VBS скрипт ругается на несоответствие типов

8.6K
09 августа 2010 года
Dre@mer
10 / / 09.09.2008
Всем привет. Написал скриптик на VBS? и почему то выдает ошибку на цикле заполнения буфера. Комментарий к ней чуть ниже. Самое интересное в том что на VB.NET все работает, а на VBS почему то нет.
И еще один вопрос. Как можно объявить переменную со значением null ссылочного типа в VBS?.

Огромное спасибо за ответы:)

set sysIO = CreateObject("System.IO.MemoryStream")
set Stream = CreateObject("ADODB.Stream")

Stream.Type = 1
Stream.Open()
Stream.LoadFromFile("C:\qwe.txt")

Dim buf

Do Until Stream.EOS
buf = Stream.Read()
Loop

'==== здесь выдается ошибка несоответствие типов
For i = 0 To Stream.Size - 1
msgbox buf(i)
sysIO.WriteByte(buf(i))
Next

set CrLib = CreateObject("CryptoLibraryImp.SignatureManager")

sysIO.Position = 0

set SignedBytes = CrLib.SignBytes(Nothing, sysIO)

sysIO.Position = 0
SignedBytes.Position = 0

set FVerf = CrLib.Verify(SignedBytes, sysIO)

If FVerf.Subject <> "" Then
CrLib.ShowCertificateInfoDialog(FVerf)
End If
327
09 августа 2010 года
UserNet2008
748 / / 03.04.2010
У Вас buf объявлен как Вариант
Dim buf

Пробуйте Dim buf As String

VB.Net ранних выпусков понимал тип Вариант , а VB.Net2008-2010 нет . VBA такого типа нет. Может я ошибаюсь.
405
12 августа 2010 года
Dmitrii
554 / / 16.12.2004
[QUOTE=Dre@mer]... почему то выдает ошибку на цикле заполнения буфера...[/QUOTE]
Код:
Set Stream = CreateObject("ADODB.Stream")
Stream.Type = 1
Stream.Open
Stream.LoadFromFile("C:\qwe.txt")
Dim buf()
ReDim buf(Stream.Size - 1)
i = 0
Do Until Stream.EOS
    buf(i) = Stream.Read(1)
    i = i + 1
Loop
For i = 0 To Stream.Size - 1
    MsgBox CStr(buf(i))
    sysIO.WriteByte(buf(i))
Next


[QUOTE=UserNet2008]Dim buf [color=red]As String[/color][/QUOTE]VBS в отличии от VB|VBA не допускает подобных инструкций.

[QUOTE=UserNet2008]... VBA такого типа нет. Может я ошибаюсь.[/QUOTE]Для VBA из Office по версию 2003 включительно - ошибаетесь. Более новые версии не проверял.
327
14 августа 2010 года
UserNet2008
748 / / 03.04.2010
[SIZE="4"]VBS в отличии от VB|VBA не допускает подобных инструкций[/SIZE].
Язык VBS впрочем как VB|VBA ГГГГГГГГГГГГГГГГГГГ ЁЩЁ то

Дмитрий Спасибо поправку
Неявное объявление типов в(VBS впрочем как VB|VBA) приводит к непредсказуемым результатам

P.S автор молчит (наверное ЛАМПОВЫЙ КОМП)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог