VB、ASPでの再帰処理
ASP・VB・Excel (24 items)
2004年08月19日
VB、ASPで再帰処理のコーディングは可能である。
以下、個人的・備忘録的サンプルソース。。
Function fParseMapToData(p_objMap, p_strData)
On Error Resume Next
fParseMapToData = False
Dim blnReturn
Dim wObjMap
Dim wObjMapSub
Dim wStrData
Dim wStrDataSub
Dim arrayItem
Dim arrayKey
Dim i
Set wObjMap = p_objMap
'*** データMAPを配列にセット
arrayItem = wObjMap.Items
arrayKey = wObjMap.Keys
For i = 0 To UBound(arrayItem) - 1
'*** VALUEがMapの場合、更にそのMapを展開
If IsObject(arrayItem(i)) Then
Set wObjMapSub = arrayItem(i)
'!!!!! 当関数を再帰的に呼び出し、サブMAPをタブ区切り文字列に変換 !!!!!
blnReturn = fParseMapToData(wObjMapSub, wStrDataSub)
'MAPのVALUE値を文字列結合
wStrData = wStrData & wStrDataSub & vbCrLf & vbTab
Else
'MAPのVALUE値を文字列結合
wStrData = wStrData & arrayItem(i) & vbTab
End If
Next
p_strData = wStrData & vbCrLf & vbTab
Set wObjMap = Nothing
fParseMapToData = True
End Function