Web Artisan Blog - ウェブ アルチザン ブログ

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


<スポンサードリンク>
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=233