Что нового

Замена ключевому слову null в AutoIt

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Как следующий vb-скрипт переписать на AutoIt?

Код:
set SchemaCache = CreateObject("Msxml2.XMLSchemaCache")
SchemaCache.Add "", null

Пробовал вместо null писать 0, '', '0', 'null'.

Выдаётся ошибка: "The requested action with this object has failed."

Код:
$SchemaCache = ObjCreate("Msxml2.XMLSchemaCache")
$SchemaCache.Add("", "")
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
null, это всегда 0 (не строка).
 
Автор
D

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Yashied сказал(а):
null, это всегда 0 (не строка).
Майкрософт с Вами не согласен:
И AutoIt и Vbs выдают ошибку если в методе add написать 0.


Код:
MsgBox("Null1: " & 0 & vbCrLf & "Null2: " & null)
Код:
---------------------------
---------------------------
Null1: 0
Null2: 
---------------------------
OK   
---------------------------
 

Kalisnik

Эволюция
Сообщения
295
Репутация
63
Наверно это с моей стороны совсем глупо, но мало ли... может пробельный символ попробовать? :shok: Хотя это уже получается True. :wacko:

P.S Или 0.0 - методом тыка ;D
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
dwerf
Может быть, Chr(0)?
 
Автор
D

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Нет, всё не то.
Неинициализированая переменная тоже не подходит.
Может какой нибудь другой объект поискать, у которого в аттрибутах по умолчанию null стоит?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Код:
$SchemaCache = ObjCreate("Msxml2.XMLSchemaCache")
MsgBox(0, "Msxml2", $SchemaCache&" error "&@error);ничего вообще не выдает


$oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1","name-of-remote-computer")
MsgBox(0, "MediaPlayer", $oRemoteMedia&" error "&@error)
 
Автор
D

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Ошибки нет, вот и не выдаёт.

Код:
$SchemaCache = ObjCreate("Msxml2.XMLSchemaCache")
MsgBox(0, "Msxml2", $SchemaCache&" error "&@error)


$oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1")
MsgBox(0, "MediaPlayer", $oRemoteMedia&" error "&@error)

Dim $a[2] = [1, 2]
MsgBox(0, '', $a & ' text')


Любопытный эффект кстати, что даже 'error' пропадает.
Но толку мне с этого немного.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Можно попробовать так:

Код:
Global Const $NULL = _VarGetNull()

$SchemaCache = ObjCreate("Msxml2.XMLSchemaCache")
$SchemaCache.Add($NULL, $NULL)

Func _VarGetNull()
    Local $oVBS, $sNothing
    
    $oVBS = ObjCreate("ScriptControl")
    $oVBS.Language = "VBScript"
    $sNothing = $oVBS.Eval("Nothing")
    
    Return $sNothing
EndFunc
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
а может
Код:
$SchemaCache.Add("")
?
 
Автор
D

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
На английском форуме тоже самое написали.
Default не идёт, $SchemaCache.Add("") не идёт, ScriptControl нет в системе (где бы его взять? Вчера качал что-то у майкрософта - не смог установить).


Добавлено:
Сообщение автоматически объединено:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=D7E31492-2595-49E6-8C02-1426FEC693AC&displayLang=en

Вроде оно, семёрка не поддерживается...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Тема решена, т.к в последней бете добавили Null.
 
Верх