には、どうするのがベストなのに対して繰り返し処理を実行するより配列クラシックVBScript、Asp?
-
08-06-2019 - |
質問
は、以下のコードを
For i = LBound(arr) To UBound(arr)
何点かを使用 LBound
?のようには常に0になります。
解決
なぜ使用しないで For Each
?そのようなケアの LBound
や UBound
ます。
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
コピーを作成し、各配列要素によるのではなく、ポインタです。
この二つの課題です。
しようとした場合に値を代入する配列要素をするものではありません反省します。このコードをランク付け価値の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
わからないとの指標の配列要素を、
for each
, を保証せず、または配列の要素があるようです。)
LBound
常に0になります。
それができない配列を作成すること以外のものに0の下で、VBScriptおいて、現施策を継続することを取り出すには配列の異からのCOMコンポーネントが指定した異なる LBound
.
とんくるには何をするようです。
おそらくこれからVB6.がついているので オプションの拠点 決VB6、変更することが可能下限の配列のようになります:
Option Base 1
また、VB6、変更することが可能なの下での特定の配列のようになります:
Dim myArray(4 To 42) As String
私は常に使用。