tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル文字列操作について
記事No1186
投稿日: 2004/12/02(Thu) 14:46
投稿者さち。
[OSのVer]:Windows XP   [VBのVer]:VB.NET  
現在sharp developにて作成しています。
文字列操作に関して躓いてしまいました・・・
どなたか教えて頂けないでしょうか。

現在コンボボックスの値にフォルダ名も含むファイル名が入っています。
そこでそのコンボボックスの値を取得しファイルの名前のみをLabel1に表示させようとしました。
comboBox1には project\ファイル名.xml となっているのでSubstringを使って8番目(project\の
次)か
ら文字列の文字数から.xml分の4文字を引いた数だけ取得しようと考えました。
ところが以下のようなエラーが出たのですがエラーの種類を調べてみたのですが引数が予測された範
囲を超え
ている、とのことですが・・・。
どなたかお気づきの点がございましたら教えて下さい。よろしくお願いします。


Label1.Text = comboBox1.SelectedItem.ToString().Substring(8,comboBox1.selectedItem.ToString
().Length - 4)

Label1.Text = comboBox1.SelectedItem.Substring(8,comboBox1.selectedItem.Length - 4)

エラー内容
System.ArgumentOutOfRangeException: Index and length must refer to a location within the
string.
Parameter name: length

[ツリー表示へ]
タイトルRe: 文字列操作について
記事No1188
投稿日: 2004/12/02(Thu) 16:11
投稿者花ちゃん
ここのTips一覧の ファイル の ファイルに関するパス操作色々 をご覧下さい。

[ツリー表示へ]
タイトルRe^2: 文字列操作について
記事No1189
投稿日: 2004/12/02(Thu) 17:08
投稿者さち。
[OSのVer]:Windows    [VBのVer]:VB.NET  

花さんありがとうございました。
そちらにあったんですね。
お陰様で期待してたとおりの動きを確認できました・・・
が私のコードは、どこが悪かったんでしょう(≧〜≦)
なにかお気づきでしたら教えて下さい。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
project\ファイル名.xml
Label1.Text = comboBox1.SelectedItem.Substring(8,comboBox1.selectedItem.ToString().Length - 4
)

[ツリー表示へ]
タイトルRe^3: 文字列操作について
記事No1190
投稿日: 2004/12/02(Thu) 18:39
投稿者花ちゃん
>project\ファイル名.xml
> Label1.Text = comboBox1.SelectedItem.Substring(8,comboBox1.selectedItem.ToString().Length -
4
> )

上記コードでは 8文字目から 文字列長(17) - 4文字 を指定していますね
すなわち 8文字目から13文字取得しょうとしたから、文字数がたりずエラーとなったのでは。

Substring(8,5) でないと "ファイル名" が取得できない。
Label1.Text = comboBox1.SelectedItem.Substring(8,comboBox1.selectedItem.ToString().Length - 12)
ではどうでしょう。(8 + 4 = 12 )

[ツリー表示へ]
タイトルRe^4: 文字列操作について
記事No1192
投稿日: 2004/12/02(Thu) 19:36
投稿者さち。
すみません、算数の問題でしたね(^_^;)
なんだかすっきりしました。
花さんホントにありがとうございます。
またご縁がありましたらよろしくお願いします。

[ツリー表示へ]