tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルリソースを配列として扱いたい
記事No6484
投稿日: 2007/11/02(Fri) 17:14
投稿者たると
こんにちはVB2005を勉強中のたるとと申します。
文字列のリソースを利用してプログラムを作成しているのですが、
読み取ってきたデータ(Integer)によって、一部を配列のような扱いが
できないかと考えています。
イメージ的には

maketext = String
Read_data = Integer とします。

maketext = My.Resources.GetString("msg" + Str(17 + Read_data))

のようにして、リソースデータmsg17からmsg35までのデータをRead_dataに
よって変化させて、maketextに代入したいのですが、
このままではGetStringがResourcesのメンバでないためエラーとなってしまいます。

参考にしたURLの質問者の方はGetStringで作成できたようですが、私は参考にしたソース
そのままを貼り付けても同じエラーが出てしまい困っています。
どなたかご教授お願いします。

参考にしたURL
http://dobon.net/vb/bbs/log3-27/16101.html

[ツリー表示へ]
タイトルRe: リソースを配列として扱いたい
記事No6485
投稿日: 2007/11/02(Fri) 18:19
投稿者魔界の仮面弁士
> maketext = My.Resources.GetString("msg" + Str(17 + Read_data))
Str 関数ではマズイでしょう。余計な空白が入ってしまいますから。

> のようにして、リソースデータmsg17からmsg35までのデータをRead_dataに
> よって変化させて、maketextに代入したいのですが、
> このままではGetStringがResourcesのメンバでないためエラーとなってしまいます。

 With My.Resources.ResourceManager()
  MsgBox(.GetString("msg17"))
  MsgBox(.GetString("msg35"))
 End With

[ツリー表示へ]
タイトルRe^2: リソースを配列として扱いたい
記事No6487
投稿日: 2007/11/05(Mon) 10:14
投稿者たると
ありがとうございます、解決いたしました。
間にResourceManagerを挟むとGetStringをResourcesのメンバとしてみることができるんですね。

        With My.Resources.ResourceManager()
            maketext = .GetString("msg" + Trim(Str(17 + Read_data)))
        End With

でStr関数の問題も解決できました。

[ツリー表示へ]
タイトルRe^3: リソースを配列として扱いたい
記事No6488
投稿日: 2007/11/05(Mon) 11:00
投稿者魔界の仮面弁士
> でStr関数の問題も解決できました。

Str関数を(Trimと共に)使うのではなく、
CStr 関数 または String.Format メソッドを利用した方が良いかと。

たとえば:
> .GetString("msg" + Trim(Str(17 + Read_data)))
.GetString("msg" & CStr(17 + Read_data))
.GetString(String.Format("msg{0}", 17 + Read_data))
という感じで。

あるいは、ToString メソッドとか。
.GetString("msg" & (17 + Read_data).ToString())
.GetString("msg" & (17 + Read_data).ToString("0"))

[ツリー表示へ]
タイトルRe^4: リソースを配列として扱いたい
記事No6493
投稿日: 2007/11/05(Mon) 12:04
投稿者たると
ありがとうございます。
Cstr関数を利用して

.GetString("msg" & CStr(17 + Read_data))

と修正しました。

[ツリー表示へ]