ventajas examples desventajas descargar vbscript

examples - vbscript virus



VBScript: ¿Cómo utilizar un objeto de diccionario devuelto por una función? (3)

Estoy tratando de devolver un diccionario de una función. Creo que la función funciona correctamente, pero no estoy seguro de cómo utilizar el diccionario devuelto.

Aquí está la parte relevante de mi función:

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

¿Cómo llamo a esta función y uso el diccionario devuelto?

EDITAR: He intentado esto:

Dim someStuff someStuff = GetSomeStuff

y

Dim someStuff Set someStuff = GetSomeStuff

Cuando intento acceder a someStuff, aparece un error:

Microsoft VBScript runtime error: Object required: ''GetSomeStuff''

EDIT 2: Probar esto en la función:

Set GetSomeStuff = stuff

Resultados en este error:

Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment.


Has intentado hacer
set GetSomeStuff = stuff
en la última línea de la función?


Has probado:

Dim returnedStuff Set returnedStuff = GetSomeStuff()

Entonces "para cada" iteración sobre el diccionario? Hay un ejemplo del uso del Diccionario (aunque para VB6, ¡aunque la esencia es la misma!) Aquí .


No estaba muy seguro de cuál era tu problema, así que experimenté un poco.

Parece que simplemente te perdiste de eso para asignar una referencia a un objeto, tienes que usar set , incluso para un valor de retorno:

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