C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 検索フォームのサンプルでつまづいてます


(過去ログ 27 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■12601 / inTopicNo.1)  検索フォームのサンプルでつまづいてます
  
□投稿者/ san (1回)-(2008/01/12(Sat) 10:53:41)

分類:[C#] 

検索フォームのサンプルでつまづいてます。(C#2005)

//検索する文字が見つかったときの処理で
                if(i>-1)となっていますが、この-1という数字はどこからでてきたのでしょうか?
基礎的なことかもしれませんがよろしくお願いします。



namespace MyMemo
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public Form1 Form1Instance;
        int j =0;//検索を始める位置
        string search_word;//検索する単語
        //検索ボタンをクリックしたときの処理
        private void button1_Click(object sender, EventArgs e)
        {//検索する単語を入力せずに検索ボタンを押した場合
            if(textBox1.Text =="")
            {
                MessageBox.Show("検索する単語を入力してください");
        }
            else
            {//検索する単語を入力して検索ボタンを押した場合
             //違う単語での1回目の検索かをチェック
                if(search_word != textBox1.Text)
                {//その単語での初めての検索なら検索を始める位置jを0にする
                    j =0;
                }
                //ユーザーが入力した検索する単語を代入
                search_word=textBox1.Text;
                //検索する単語をFORM1のtextBox1.textのj番目の文字以降で検索
                int i = Form1Instance.textBoxtext.IndexOf(search_word,j);
                //検索する文字が見つかったときの処理
                if(i>-1)
                {//検索語の見つかった位置
                    Form1Instance.sselection=i;
                    //検索語の長さ
                    Form1Instance.Lselection=search_word.Length;
                    if(j==0)
                    {//その検索語での初めての検索ならボタンの文字を「次を検索」に変える
                        button1.Text="次を検索";
                    }
                    //どの位置まで検索したかをjに格納
                    j=i + search_word.Length;
                }
                else
                {//検索語がみつからなかったときの処理
                    MessageBox.Show(search_word + "は見つかりませんでした");
                }
            }

    }
    }
}

引用返信 編集キー/
■12602 / inTopicNo.2)  Re[1]: 検索フォームのサンプルでつまづいてます
□投稿者/ επιστημη (778回)-(2008/01/12(Sat) 11:09:59)
επιστημη さんの Web サイト
> //検索する文字が見つかったときの処理で
> if(i>-1)となっていますが、この-1という数字はどこからでてきたのでしょうか?

マニュアル(MSDN)読みましたか? 読んでないでしょ。

http://msdn2.microsoft.com/ja-jp/library/7cct0x33.aspx

  戻り値
  型 : System..::.Int32
  その文字列が見つかった場合は、value のインデックス位置。見つからなかった場合は -1。

ってちゃーんと書いてあります。

引用返信 編集キー/
■12603 / inTopicNo.3)  Re[1]: 検索フォームのサンプルでつまづいてます
□投稿者/ 774RR (116回)-(2008/01/12(Sat) 11:14:47)
マニュアルを読んだのか?
System.String.IndexOf http://msdn2.microsoft.com/ja-jp/library/7cct0x33.aspx
自明だと思うが
引用返信 編集キー/
■12608 / inTopicNo.4)  Re[2]: 検索フォームのサンプルでつまづいてます
□投稿者/ san (2回)-(2008/01/12(Sat) 14:43:22)
No12602 (επιστημη さん) に返信
>>//検索する文字が見つかったときの処理で
>> if(i>-1)となっていますが、この-1という数字はどこからでてきたのでしょうか?
>
> マニュアル(MSDN)読みましたか? 読んでないでしょ。
>
> http://msdn2.microsoft.com/ja-jp/library/7cct0x33.aspx
>
>   戻り値
>   型 : System..::.Int32
>   その文字列が見つかった場合は、value のインデックス位置。見つからなかった場合は -1。
>
> ってちゃーんと書いてあります。
>
ありがとうございます。なにせ初心者なもので、MSDNの読み方もよくわかっていません。

解決済み
引用返信 編集キー/
■12609 / inTopicNo.5)  Re[2]: 検索フォームのサンプルでつまづいてます
□投稿者/ san (3回)-(2008/01/12(Sat) 14:51:48)
No12602 (επιστημη さん) に返信
>>//検索する文字が見つかったときの処理で
>> if(i>-1)となっていますが、この-1という数字はどこからでてきたのでしょうか?
>
> マニュアル(MSDN)読みましたか? 読んでないでしょ。
>
> http://msdn2.microsoft.com/ja-jp/library/7cct0x33.aspx
>
>   戻り値
>   型 : System..::.Int32
>   その文字列が見つかった場合は、value のインデックス位置。見つからなかった場合は -1。
>
> ってちゃーんと書いてあります。
>
if(i>-1)は if(i !=-1)でもよいのですよね。
引用返信 編集キー/
■12611 / inTopicNo.6)  Re[3]: 検索フォームのサンプルでつまづいてます
□投稿者/ 倉田 有大 (107回)-(2008/01/12(Sat) 16:05:58)
> if(i>-1)は if(i !=-1)でもよいのですよね。

そうですねー
引用返信 編集キー/
■12623 / inTopicNo.7)  Re[3]: 検索フォームのサンプルでつまづいてます
□投稿者/ Tom Yama (9回)-(2008/01/13(Sun) 10:58:42)
No12609 (san さん) に返信
> if(i>-1)は if(i !=-1)でもよいのですよね。
いいえ。ダメです。

>>  その文字列が見つかった場合は、value のインデックス位置。見つからなかった場合は -1。
「見つからなかった場合は -2」が返るよう、仕様変更されたら、どうします?
引用返信 編集キー/
■12624 / inTopicNo.8)  Re[4]: 検索フォームのサンプルでつまづいてます
□投稿者/ επιστημη (779回)-(2008/01/13(Sun) 11:07:12)
επιστημη さんの Web サイト
2008/01/13(Sun) 11:19:41 編集(投稿者)

>> if(i>-1)は if(i !=-1)でもよいのですよね。
> いいえ。ダメです。

異議あり。

> >>  その文字列が見つかった場合は、value のインデックス位置。見つからなかった場合は -1。
> 「見つからなかった場合は -2」が返るよう、仕様変更されたら、どうします?

if ( i != -2 ) に書き換えるダケです。

仕様変更云々を言い出したらきりがない。
「見つからなかったら例外をthrowします」とか
「本メソッドは廃止されました。新メソッドSearchを使ってください」
なんて仕様変更されたらどうします?
どっちみち利用者コードを書き換えるしかないやん。
# 起こるかどうかもわからん未来に対してそこまで心配します?

引用返信 編集キー/
■12639 / inTopicNo.9)  Re[5]: 検索フォームのサンプルでつまづいてます
□投稿者/ Tom Yama (10回)-(2008/01/13(Sun) 20:35:26)
No12624 (επιστημη さん) に返信
> # 起こるかどうかもわからん未来に対してそこまで心配します?
はい。そのためのコストが(ほぼ)0ならば、「します」。

この件については、習慣づけておきさえすれば、コストは実質0になると思われるので、
敢えて、ダメ出ししてみました。
引用返信 編集キー/
■12640 / inTopicNo.10)  Re[6]: 検索フォームのサンプルでつまづいてます
□投稿者/ も (4回)-(2008/01/13(Sun) 21:33:56)
No12639 (Tom Yama さん) に返信
> ■No12624 (επιστημη さん) に返信
>># 起こるかどうかもわからん未来に対してそこまで心配します?
> はい。そのためのコストが(ほぼ)0ならば、「します」。
>
> この件については、習慣づけておきさえすれば、コストは実質0になると思われるので、
> 敢えて、ダメ出ししてみました。
YAGNI?
引用返信 編集キー/
■12646 / inTopicNo.11)  Re[6]: 検索フォームのサンプルでつまづいてます
□投稿者/ επιστημη (780回)-(2008/01/13(Sun) 23:31:23)
επιστημη さんの Web サイト
>># 起こるかどうかもわからん未来に対してそこまで心配します?
> はい。そのためのコストが(ほぼ)0ならば、「します」。

ビミョーなとこかな。-1じゃなくなる見込みも(ほぼ)0だし。

> この件については、習慣づけておきさえすれば、コストは実質0になると思われるので、
> 敢えて、ダメ出ししてみました。

わかります。
"誤りじゃない"なんて遠まわしな言いようするくらいなら直接"正しい"って言えよ、と。
んでも"ダメです"と一蹴するほど強い要請だろか? と思うですね。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -