カタツムリ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にご協力をお願いします。↓↓↓

にほんブログ村 経営ブログへランキングUP!

ランキングUP!

banner2.gif 人気blogランキング!

投稿者 shiozumi : 22:42 | トラックバック (0)

このエントリーのトラックバックURL

http://blog.e-smile.ne.jp/cgi-bin/mt/mt-tb.cgi/52