- 題名: My.Settings で半角スペースを保存すると
- 日時: 2015/03/12 7:04:12
- ID: 32867
- この記事の返信元:
- (なし)
- この記事への返信:
- [32868] Re[1]: My.Settings で半角スペースを保存すると2015/03/12 11:36:20
- ツリーを表示
■No32867に返信(o.sさんの記事)
> My.Settings で一個の半角スペースの文字列を保存すると、
> 改行記号と16個のスペースに変換して保存されるようです。
項目値が「 」(半角スペース1個)の場合、config 内の設定が、
<userSettings>
<WindowsApplication1.My.MySettings>
<setting name="何某" serializeAs="String">
<value>
</value>
</setting>
</WindowsApplication1.My.MySettings>
</userSettings>
になってしまっているのだと推察します。
> 簡単な対処方法はありますか。
==================================
(案1) Visual Studio の設定画面は用いず、.config を直接編集する。
長所:既存のコードに影響を与えない。
短所:Visual Studio の設定画面を開くと、編集前の状態に戻ってしまう。
==================================
(案2) BASE64 文字列を格納するようにする。
'読み取り
TextBox1.Text = Encoding.UTF8.GetString(Convert.FromBase64String(My.Settings.何某))
'編集
My.Settings.何某 = Convert.ToBase64String(Encoding.UTF8.GetBytes(TextBox2.Text))
My.Settings.Save()
長所:.config 側で前後に空白が付与されても、問題なく復元できる。
短所:既存のコードに修正が必要となる。
==================================
(案3) データ型を String 以外の型にする。(Type="System.Char" 案)
『My.Settings.何某 の型を As String から As Char に変更』
長所:config ファイルの可読性が維持できる。
短所:「一文字」しか管理できない。(2文字以上や文字数0の保持には向かない)
==================================
(案4) データ型を String 以外の型にする。(Type="System.Char[]" 案)
『My.Settings.何某 の型を As String から As Char() に変更』
長所:既存のコードへの影響が少ない。
長所:Visual Studio の設定画面を開きなおしても、編集結果が崩れることは無い。
短所:config ファイルの可読性が悪化する。
VB は、Char 配列と String をほぼ同等に扱えるようになっているため、
設定情報を Char の一次元配列型に変更しておけば、
'読み取り
TextBox1.Text = My.Settings.何某
や
'編集
My.Settings.VS2008 = TextBox1.Text
My.Settings.Save()
などといったコードは、そのまま無加工で扱えます。
ただし、.config 側の保持形式は <ArrayOfChar> に変更されます。
==================================
分類:[.NET]
My.Settings で一個の半角スペースの文字列を保存すると、
改行記号と16個のスペースに変換して保存されるようです。
簡単な対処方法はありますか。