Главная страница
    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.041 c
15-1163710040
Tor
2006-11-16 23:47
2006.12.03
Перестала запускаться Delphi 7


15-1163355784
razor
2006-11-12 21:23
2006.12.03
Футболка с надписью, логотипом ACM


2-1163778805
Adios
2006-11-17 18:53
2006.12.03
?


15-1163602446
Energizer
2006-11-15 17:54
2006.12.03
Кому-нибудь приходилось иметь дело с ВКТ-7 ?


15-1163347205
К.
2006-11-12 19:00
2006.12.03
Ноутбук, гаснет экран





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский