- ベストアンサー
Const定義した文字列にパラメータを渡す?
いつもお世話になっています。 今開発中のプロジェクトでメッセージ文言の文字列をインクルードファイルにconstで定義し、実際のプログラム中にベタで書くのをやめる決まりを作ろうと思うのですが、const定義した文字列にパラメータを渡すことが出来ますか? たとえば const A = "すでに同じ%があります。" Aの"%"部分を可変にしたい場合、たしか上記のように"%"か"?"かなんかで設定してあげて、文字列を編集したメッセージボックスを表示する共通関数を作り、その関数に%部分の文字列をパラメータで渡すという開発手順をVBで経験した記憶があるのですが・・・。 その時は共通関数を呼ぶだけで、まだ超初心者だったこともあり関数の中身まで読んで勉強することがなかったのでよく仕組みがわからないのですが、こういう場合、自分で文字列置換の関数を作るだけなんですか? それともなんらかの方法があるのでしょうか。 みなさんよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一般的には Const A = "すでに同じ%0%があります。%1%に変更しますか?" などと定義し、 Replace(A, "%0%", "データ") Replace(A, "%1%", "Key=2") とすれば汎用化できます。
その他の回答 (1)
- mfuku
- ベストアンサー率50% (173/345)
Replace関数を使えば簡単に文字列置換ができます。 例えば、下記のように使用します。 ----------------------------------- Const A = "すでに同じ%があります。" Response.Write Replace(A, "%", "サンプル") ----------------------------------- 上記の例は定数Aの"%"を"サンプル"に置き換える例です。 この部分を汎用的に共通関数化すればOKだと思います。
補足
ありがとうございます。 確か前のVBの開発では"%"部分が2つあってもその順番にパラメータを渡してあげれば大丈夫な気がしたんです。 Response.Write Replace(A, "%", "サンプル") だと一括置換になってしまうので、やっぱり自分でInstr("%")って感じで何文字目か取得するしかないのでしょうか・・・。
お礼
ありがとうございます。お礼がおそくなってしまって申し訳ありません。 なるほど、という感じです。検討してみます。 上司に話したところ、上司がプログラミングしたことのある言語だとそういう関数があるそうなのです。普通にVBでもありそうなのに・・・という感じで調べてました。なさそうなのでZeus089さんのアドバイスを検討してみようと思います。