vbscript : 함수에서 반환 된 사전 객체를 사용하는 방법은 무엇입니까?
-
02-07-2019 - |
문제
함수에서 사전을 반환하려고합니다. 이 기능이 올바르게 작동한다고 생각하지만 반환 된 사전을 어떻게 활용하는지 잘 모르겠습니다.
내 기능의 관련 부분은 다음과 같습니다.
Function GetSomeStuff()
'
' Get a recordset...
'
Dim stuff
Set stuff = CreateObject("Scripting.Dictionary")
rs.MoveFirst
Do Until rs.EOF
stuff.Add rs.Fields("FieldA").Value, rs.Fields("FieldB").Value
rs.MoveNext
Loop
GetSomeStuff = stuff
End Function
이 기능을 호출하고 반환 된 사전을 어떻게 사용합니까?
편집 : 나는 이것을 시도했다 :
Dim someStuff
someStuff = GetSomeStuff
그리고
Dim someStuff
Set someStuff = GetSomeStuff
Somestuff에 액세스하려고하면 오류가 발생합니다.
Microsoft VBScript runtime error: Object required: 'GetSomeStuff'
편집 2 : 기능에서 이것을 시도합니다.
Set GetSomeStuff = stuff
이 오류가 발생합니다.
Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment.
해결책
나는 당신의 문제가 무엇인지 확신하지 못했기 때문에 조금 실험했습니다.
객체에 대한 참조를 할당하기 위해 그것을 놓친 것 같습니다. set
, 리턴 값에 대해서도 :
Function GetSomeStuff
Dim stuff
Set stuff = CreateObject("Scripting.Dictionary")
stuff.Add "A", "Anaconda"
stuff.Add "B", "Boa"
stuff.Add "C", "Cobra"
Set GetSomeStuff = stuff
End Function
Set d = GetSomeStuff
Wscript.Echo d.Item("A")
Wscript.Echo d.Exists("B")
items = d.Items
For i = 0 To UBound(items)
Wscript.Echo items(i)
Next
다른 팁
당신은 시도 했습니까?
set GetSomeStuff = stuff
함수의 마지막 줄에서?
시도 했습니까?
Dim returnedStuff
Set returnedStuff = GetSomeStuff()
그런 다음 사전을 반복하는 "각각"에 대해? 사전을 사용하는 예가 있습니다 (VB6에도 불구하고 요점은 동일합니다!) 여기.
제휴하지 않습니다 StackOverflow