【问题标题】:how to filter dictionary vbscript?如何过滤字典vbscript?
【发布时间】:2018-03-09 10:33:39
【问题描述】:

我有一个脚本作为结果字典。最初的收入是一个格式为 a=abc, b=def, c1=ghj, c2=klm, d1=123, d2=456 的字符串。

脚本正在创建字典

For i = 0 to Wscript.Arguments.Count - 1
myArray = split(Wscript.Arguments(i),"=",-1,1)
objDict.Add myArray(0),myArray(1)

我需要向字典中添加额外的对,例如 C=ghj、klm(结合 c1 和 c2)和 D = 123、456。由于 vbs 字典不能将数组作为值,所以我现在已经堆叠了。

是否可以使用过滤器创建新的字典/数组?以及如何达到所需的结果?

例如我有一个函数

Sub attachmentf()
Dim i
Dim x
Dim y(1)
Dim z
Dim a
Dim b
Dim c
Dim d

a = objDict.Keys  
c=Filter(a,"attachment")
    For i=0 to 1 'ubound(c)
    d = objDict.item(c(i)) 
    y(i) = d
    wscript.echo y(i)
    dictResults.Add "ATTACHMENT", y(i)
    next
end Sub

它在 echo 步骤返回我数组,但它给了我错误:一旦我尝试将它添加到字典中,它不符合标准键/值对格式。 如果我尝试使用 unound 或不提供数组大小(例如 Dim y()),它也不起作用......有什么想法吗?

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    由于 vbs 字典不能将数组作为值 [...]

    是什么让你相信?

    >>> Set d = CreateObject("Scripting.Dictionary")
    >>> d.Add "foo", Array("a", "b")
    >>> WScript.Echo d("foo")(1)
    b
    

    【讨论】:

    • 哦,你是对的...key 不会是一个数组。但仍然堆叠结合 C 和 D..
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多