には、どうするのがベストなのに対して繰り返し処理を実行するより配列クラシックVBScript、Asp?

StackOverflow https://stackoverflow.com/questions/2348

  •  08-06-2019
  •  | 
  •  

質問

は、以下のコードを

For i = LBound(arr) To UBound(arr)

何点かを使用 LBound?のようには常に0になります。

役に立ちましたか?

解決

なぜ使用しないで For Each?そのようなケアの LBoundUBound ます。

Dim x, y, z
x = Array(1, 2, 3)

For Each y In x
    z = DoSomethingWith(y)
Next

他のヒント

が良い理由 使用しないで For i = LBound(arr) To UBound(arr)

dim arr(10) 割り当てブンイレブンの配列0-10とVB6デフォルトのオプション)。

多くのVB6プログラマーとの配列が一つに基づくものでは絶対に使わないでください割り当て arr(0).までの除電バグを使用 For i = 1 To UBound(arr) または For i = 0 To UBound(arr), ので、そのかは明らかで arr(0) 使用しています。

For each コピーを作成し、各配列要素によるのではなく、ポインタです。

この二つの課題です。

  1. しようとした場合に値を代入する配列要素をするものではありません反省します。このコードをランク付け価値の47の変数 i, ものに影響を及ぼさない要素 arr.

    arr = Array(3,4,8)
    for each i in arr
         i = 47
    next i
    Response.Write arr(0) '- returns 3, not 47

  2. わからないとの指標の配列要素を、 for each, を保証せず、または配列の要素があるようです。)

LBound 常に0になります。

それができない配列を作成すること以外のものに0の下で、VBScriptおいて、現施策を継続することを取り出すには配列の異からのCOMコンポーネントが指定した異なる LBound.

とんくるには何をするようです。

おそらくこれからVB6.がついているので オプションの拠点 決VB6、変更することが可能下限の配列のようになります:

Option Base 1

また、VB6、変更することが可能なの下での特定の配列のようになります:

Dim myArray(4 To 42) As String

私は常に使用。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top