--.--.--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2009.12.30

第357夜 其の1

vbs(wsh)のお勉強5日目・・・。

基本的な文法は覚えてきた?
あとはサンプルを読んでくしかないか・・・。

WHSやWMIのサンプルを探して読んでこう。
この記事へのトラックバックURL
http://hexagram.blog41.fc2.com/tb.php/379-377698f0
この記事へのトラックバック
この記事へのコメント
Q.XMLを読み込みたい場合

A.MSXML2.DOMDocumentを利用するらしい。

例)
Option Explicit

Dim objXML

Set objXML = WScript.CreateObject("MSXML2.DOMDocument")
objXML.load("sample.xml")

'全体表示
Wscript.Echo objXML.xml

Dim objNodes

Set objNodes = objXML.childNodes

Wscript.Echo objNodes(0).xml
Wscript.Echo objNodes(1).xml

例)
Option Explicit

Dim objXML
Dim objNode
Dim objItem

Set objXML = WScript.CreateObject("MSXML2.DOMDocument")
objXML.load("sample.xml")

For Each objNode In objXML.childNodes
For Each objItem In objNode.childNodes
Wscript.Echo objItem.nodeName & "=" & objItem.firstChild.nodeValue
Next
Next
Posted by hexagram at 2009.12.30 10:27 | 編集
Q.下記のコードがなぜngになるのか?

Option Explicit

If checkDate("123") Then
'If checkDate("2009/12/31") Then
WScript.Echo "ok"
Else
WScript.Echo "ng"
End if

Function checkDate(str)
On Error Resume Next
checkDate = DateValue(str)
End function

A.未調査。

VBScriptでは、関数内でエラーをRaiseすると戻り値が返ってこないらしいが、その辺りが関係しているのか?

いや、単純にエラーが発生しているから戻り値が初期値(空文字?)で返却されるのでngになるだけか?

基にしたサンプルがそもそも「checkDate = DateValue(str)」ではなく「DateValue(str)」になっていて、どうやってifで判定しているんだ?という疑問を持った。

正常な値を渡してもエラーになるため、自分で戻り値設定を追加した経緯がある。
サンプルの不備に惑わされただけなのだろうか?
Posted by hexagram at 2009.12.30 11:35 | 編集
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。