SSブログ

指定した間隔でカラーコードを作成する関数(再帰的プログラム)のサンプル VBScript [VBScript]

各桁が3,9,Fの16進数で組み合わされたカラーコードを作成し配列で出力する関数の例です。Sub(サブルーチン)で作成されるのが多い再帰的プログラムをFunctionで作成してみました。

スポンサーリンク

サンプルプログラム



Function hex39F(cmpS,c)
	Dim	numS
	Dim	num6, d
  ReDim	num6(0)		'配列の宣言
	Dim	m
		m	= -1

	For	d = 3 To 15 Step 6
		cmpS(c)	= hex(d) & hex(d)	'数字を16進数に変換する

		If	c < UBound(cmpS) Then	'まだ3回ネストを繰り返していなければ
			numS	= hex39F(cmpS,c+1)
'd			objLOG.WriteLine(Join(numS,";"))
			If	UBound(num6) = 0 Then	'最初の出力であれば
				num6	= numS					'連結処理なし→配列を代入する
			Else
				num6	= concatARY(num6,numS)	'2回目以降は配列を連結していく
			End	If
		Else
			If	cmpS(0) <> cmpS(2) Then		'前後2桁のコードが同じものは弾く
				m		= m + 1
				ReDim	Preserve num6(m)	'配列の大きさを1つずつ大きくしていく
				num6(m)	= "#"& Join(cmpS,"")
'd				objLOG.WriteLine(m &":"& Join(cmpS,""))
			End	If
		End	If
	Next

	hex39F	= num6
End	Function



concatARY関数は、2つの1次元配列を連結する独自関数です。

出力結果


#333333
#333399
#3333FF
#339933
#339999
#3399FF
#33FF33
#33FF99
#33FFFF
#993333
#993399
#9933FF
#999933
#999999
#9999FF
#99FF33
#99FF99
#99FFFF
#FF3333
#FF3399
#FF33FF
#FF9933
#FF9999
#FF99FF
#FFFF33
#FFFF99
#FFFFFF

スポンサーリンク

concatARY関数


2つの1次元配列をの結合する関数です。

・inARY1:結合する配列1
・inARY2:結合する配列2
・outARY:戻り値。結合した配列

Function concatARY(inARY1,inARY2)
	Dim UB1, UB2
		UB1	= UBound(inARY1)
		UB2	= UBound(inARY2)

	Dim	outARY
  ReDim outARY(UB1+UB2+1)
	Dim a
	For a = 0 To UB1
		outARY(a)	= inARY1(a)
	Next

	For a = 0 To UB2
		outARY(UB1+1+a)	= inARY2(a)
	Next

	concatARY	= outARY
End Function


スポンサーリンク


関連記事


指定した間隔でカラーコードを作成する関数(再帰的プログラム)のサンプル VBScript


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。