トップ回答者
クラッシックASPで項目名を変数にしたい

質問
-
IIS7.0 クラッシックASPのコーディングで教えてください。
コンスタント値として 項目名の最終一文字が連番になった定数が定義してあり、
プログラム内で、前処理から受け取った値が最終一文字に該当する値を
応答する、単純な処理なのですが、
'前処理で与えられる引数: uketori_no
----------------------------------
'最終一文字が連番になった定数定義(仮に1から9としておきます)
Const con_1 = "red"
Const con_2 = "blue"
Const con_3 = "green"
:
:
Const con_9 = "green"
'応答処理--------------------
Select Case uketori_no
Case 1
resvalue = con_1
Case 2
resvalue = con_2
Case 3
resvalue = con_3
:
:
Case 9
resvalue = con_9
End Select
response.write resvalue
とすれば、処理はできるにはできるのですが、
冗長なコーディングとなり、改造時にも冗長となるため項目名を変数化して値を取得できないかと思っています。'応答処理--------------------
resvalue = "con_"&uketori_no
response.write resvalue
----------------------------------
とすると受け取りたい項目名までは生成はできるのですが、
項目名で定義されている定数値ではなく、項目名を値として
の応答しかできません。
受け取りたいコンスタント定義名を生成して、
生成した項目の値を使用する方法はないでしょうか?宜しくお願いします
- 編集済み MorningStorehouse 2016年4月27日 7:03
回答
-
こんな感じですかね?
<% Const con_1 = "red" Const con_2 = "blue" Const con_3 = "green" uketori_no = 2 Execute("resvalue = con_" & uketori_no) Response.Write (resvalue ) %>
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク MorningStorehouse 2016年4月27日 11:31
-
こんにちは。
Dictionaryを使う方法もあると思います。
<% Set dic = Server.CreateObject("Scripting.Dictionary") dic.Item("con_1") = "red" dic.Item("con_2") = "blue" dic.Item("con_3") = "green" uketori_no = 2 resvalue = dic.Item("con_" & uketori_no) Response.Write (resvalue ) %>
きよくらならみ
- 回答としてマーク MorningStorehouse 2016年4月27日 11:32
すべての返信
-
こんな感じですかね?
<% Const con_1 = "red" Const con_2 = "blue" Const con_3 = "green" uketori_no = 2 Execute("resvalue = con_" & uketori_no) Response.Write (resvalue ) %>
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク MorningStorehouse 2016年4月27日 11:31
-
こんにちは。
Dictionaryを使う方法もあると思います。
<% Set dic = Server.CreateObject("Scripting.Dictionary") dic.Item("con_1") = "red" dic.Item("con_2") = "blue" dic.Item("con_3") = "green" uketori_no = 2 resvalue = dic.Item("con_" & uketori_no) Response.Write (resvalue ) %>
きよくらならみ
- 回答としてマーク MorningStorehouse 2016年4月27日 11:32
-
ありがとうございます。うまくできました。
Execute命令を勉強してみます。- 回答としてマーク MorningStorehouse 2016年4月27日 11:28
- 回答としてマークされていない MorningStorehouse 2016年4月27日 11:32
-
ありがとうございます。
コンスタント定義でなくて、配列にいれて、配列の呼び出しキーとして、受け取りたい項目名を使用するということですね。なるほどです。
勉強になりました。
- 回答としてマーク MorningStorehouse 2016年4月27日 11:31
- 回答としてマークされていない MorningStorehouse 2016年4月27日 11:32