2007年09月12日
関数の共通化に挑戦!
みなさん、こんばんは。
さあ~みなさん、どんなプログラムになりましたか?
私の作成したプログラムは、ここからダウンロードできます。
それでは、早速、私の回答を解説して行きます。
下記の3つを引数にして、my_prg_c を作成しました。
1.file_1 ・・・初期の文字列
2.count ・・・繰り返しの回数を設定
3.file_add・・・追加する文字列
また、もう一つのポイントは、file_add で、”Bさんも★回、変更しました。”
の★を、Replace関数によって、数字を置き換えています。
この方法は、ゲームのスクリプトエンジンにも、多用されています。
是非、覚えておいて欲しい実例です。
さて、今回は、2つの似て非なる関数を、ひとつに合体させたのですが、
このような実習を、たくさん経験して欲しいですね。
特に、関数を共通化することは、その後のプログラムのメンテナンスも容易になりますし、
プログラムの容量も小さくなります。
特に組み込み系では、容量にも限界がありますので、このような作業は必須となってきます。
私自身も、ファミコン時代は、容量の制限や、CPUの処理の能力にも限界があり、
プログラムの共通化と、処理スピードを上げるための工夫を、いつも心掛けいました。
みなさんにも、是非、習得して欲しい技術です。
▼▼▼ ここから私のプログラムです。▼▼▼
Public GL_file_1 As String '① グローバルな変数
Public GL_file_add As String '① 追加する文字列
Sub main_3()
GL_file_1 = "グローバルなファイルです。" '
GL_file_add = "Aさんが変更しました。" '追加する文字列を引数に追加する。
my_prg_c GL_file_1, 1, GL_file_add '元の文字列、複製回数、追加する文字列
GL_file_add = "Bさんも★回、変更しました。" '★を数字に置き換わる。
my_prg_c GL_file_1, 3, GL_file_add '元の文字列、複製回数、追加する文字列
MsgBox GL_file_1
End Sub
'------------------------------------------------------------------------
' 関数:自分で作成したオリジナル関数C
' 動作:
' 引数:
' 戻値:
'------------------------------------------------------------------------
Private Sub my_prg_c(ByRef file_1 As String, count As Integer, file_add As String)
Dim i As Integer '② プライベートな変数
Dim file_cnv As String '② プライベートな変数
For i = 1 To count 'ループ回数
file_cnv = Replace(file_add, "★", CStr(i), , vbTextCompare) '文字列の置き換え
file_1 = file_1 & file_cnv
Next i
End Sub
ツイッターはじめました~フォロー待ってま~す!!
↓↓↓下記の3つのバナーをクリックして下さい。ランキングUPにご協力をお願いします。↓↓↓
投稿者 shiozumi : 22:42 | トラックバック (0)