3

私が仕事で書いているスクリプトの多くは、動的にサイズ変更可能な配列の作成に依存しています。VBScript の配列では、Redimサイズを変更するたびに配列を作成する必要があるため、これは非常に骨の折れる作業になります。これを回避するために、カンマ区切りの文字列を作成し、それを使用Split(...)して 1D 配列を作成することにしました。これは私にとっては素晴らしいことですが、VBScript にはこれを処理するためのより効率的な方法があるかどうか疑問に思っていました。だから私はStackOverflowに尋ねます。ある?

免責事項: VBScript が非常に標準以下のスクリプト言語であることは十分承知していますが、Python には追加のソフトウェアが必要であり、サーバーの自動化には少々手間がかかります。また、PowerShell はまだコア コンポーネントではありません。でも、私は両方を学んでいます!

4

2 に答える 2

6

私が通常行っている解決策は、新しい項目を追加するたびに配列のサイズを変更することです。そうすれば、最後の配列には未使用のエントリがなくなります。

ReDim aArray(-1)

For i = 1 To 10
    ReDim Preserve aArray(UBound(aArray) + 1)
    aArray(UBound(aArray)) = i
Next

MsgBox Join(aArray, "," & vbNewLine)

Carlos によって提案された他の解決策は、おそらくよりクリーンな解決策である Dictionary オブジェクトを使用してそれを行うことです。

Set dic = CreateObject("Scripting.Dictionary")

dic.Add "Item1", ""
dic.Add "Item2", ""
dic.Add "Item3", ""

msgbox Join(dic.Keys, "," & vbNewLine)

ありがとう、マチェイ

于 2010-08-19T17:16:11.987 に答える
1

Dictionaryオブジェクトはどうでしょうか。

于 2010-08-11T15:13:14.037 に答える