Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Что неправильно в следующем VBScript?   Найти похожие ветки 

 
SkySpeed   (2006-11-11 20:42) [0]

Что неправильно в следующем VBScript?

set objFSO = CreateObject("Scripting.FileSystemObject")
set objTextFile = objFSO.CreateTextFile("os1.txt")
set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\root\cimv2")
set colOS = objWMIService.ExecQuery("Select * from Win32_Process")
for each objProcess in colOS
objTextFile.WriteLine objProcess.ExecutablePath
objTextFile.WriteLine vbCrLf
next


Что самое прикольное - ошибка выскакивает на WriteLine
Microsoft VBScript runtime error: Type mismatch: "objTextFile.WriteLine"


 
sniknik ©   (2006-11-11 20:51) [1]

> Type mismatch: "objTextFile.WriteLine"
Null не так, преобразовывать или проверять надо.


 
SkySpeed   (2006-11-11 20:54) [2]


> sniknik ©   (11.11.06 20:51) [1]
> > Type mismatch: "objTextFile.WriteLine"
> Null не так, преобразовывать или проверять надо.

Если не трудно - подскажи как это сделать, плиз!


 
sniknik ©   (2006-11-11 21:01) [3]

вообщето здесь родной язык дельфи... и у меня весь опыт с вижуал бейсиком в чтении хелпов из аксесса... понять могу, а вот написать... ;)
чтото типа if not isNull() then ... (т.е. как в дельфе ;о)), но может отличаться)

ошибка просто встречается, при работе с jet а он функции (не синтаксис!) vb поддерживает.


 
sniknik ©   (2006-11-11 21:08) [4]

в смысле, ошибка то конечно несовпадение типа... но неявно (на что нарываешься, и до чего вот так сразу не догадаешся) там функции вроде бы строку возвращают, описано/должны, а на самом деле "вариант", у которого нормально значение null... а вот входные параметры почемуто его не принимают... бейсик, одно слово... ;о)


 
palva ©   (2006-11-11 21:09) [5]

VBS не знает, что такое vbCrLf . Наверно, вы имели ввиду конец строки, тогда присвойте этой переменной значение Chr(13) & Chr(10)
Только это можно сделать проще. Для перевода строки достаточно выполнить WriteLine без параметров.


 
palva ©   (2006-11-11 21:11) [6]

А несовпадение типов означает, что вы передали методу WriteLine параметр нестрокового типа.


 
sniknik ©   (2006-11-11 21:13) [7]

> VBS не знает, что такое vbCrLf
знает, не раз встречалось.

help (попавшийся)
Sub ShowFileAccessInfo(filespec)
   Dim fs, f, s
   Set fs = CreateObject("Scripting.FileSystemObject")
   Set f = fs.GetFile(filespec)
   s = UCase(filespec) & vbCrLf
   s = s & "Created: " & f.DateCreated & vbCrLf
   s = s & "Last Accessed: " & f.DateLastAccessed & vbCrLf
   s = s & "Last Modified: " & f.DateLastModified  
   MsgBox s, 0, "File Access Info"
End Sub


проблема вот в этом значении objProcess.ExecutablePath, том что оно не всегда строка.


 
sniknik ©   (2006-11-11 21:15) [8]

> А несовпадение типов означает, что вы передали методу WriteLine параметр нестрокового типа.
а я про что говорил в первых двух постах???


 
palva ©   (2006-11-11 21:27) [9]

А, теперь понял. Я прочитал
> ошибка выскакивает на WriteLine
а в примере два WriteLine. Я подумал на последний.
Тогда надо проверить тип. Для этого можно присвоить
s =objProcess.ExecutablePath
If TypeName(s) = "String" Then
...
Может быть, сработает и
If TypeName(objProcess.ExecutablePath) ...
но не советую так делать.
Вот попробовал следующее:
i = 5
s = ""
MsgBox TypeName(i) " Integer
MsgBox TypeName(s) " String



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.047 c
2-1163594778
StriderMan
2006-11-15 15:46
2006.12.03
try ... except ... on


1-1161594663
dmitry kholl
2006-10-23 13:11
2006.12.03
Рост памяти с TWebBrowser


2-1163774426
asg.aleks
2006-11-17 17:40
2006.12.03
редактирование bdf файла из формы


11-1140002148
KingMidas
2006-02-15 14:15
2006.12.03
SQLLite


15-1163750958
Slider007
2006-11-17 11:09
2006.12.03
С днем рождения ! 17 ноября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский