1

classic-ASPで記述されたレガシーコードを編集したいと思います。

現在、for-nextループを使用していくつかのラジオボタンを出力するサブルーチンが宣言されています。

 For i = 1 to Cols
   response.write "blah"
   ...
 Next

iは単なるカウンターであり、Colsはサブルーチンに渡される値です。代わりに、forループをwhileループに編集してみました。

i = Start
do while i <= Cols
  response.write "blah"
  ...
  i = i + 1
loop

しかし、Response BufferLimitExceededエラーが発生します。Colsを値に置き換えると、正常に機能します。これはclassic-ASPの制限ですか?


do whileループを使用したい理由は、現在、サブルーチンが1からColsへのループに制限されているためです。ループカウントを逆方向に指定すると便利な場合がありますが(つまり、ステップ-1)、次のように書くことはできません。

if Direction = Backwards then 
  For i = Cols to 1 step -1
else
  For i = 1 to Cols
end if
4

1 に答える 1

5

どうですか:

If Direction = Backwards Then
    cs = 10
    ce = 1
    s = -1
Else
    cs = 1
    ce = 10
    s = 1
End If

For i = cs To ce Step s
    ''
Next
于 2012-04-16T16:40:48.013 に答える