• ベストアンサー

ある配列の特定の位置の値が変わった場合(もしくは0になった)場合、 ブレークさせる方法はありますか?

C# 2008 Expressを使っています。 ある配列があり、特定の位置例えば2番目の値が変わった場合(もしくは0になった)場合、 ブレーク(中断)させる方法はありますか? ary[2] = 3; ary[2] = 0; <--- 0になった ここのソースでブレーク(中断) ある配列で値を設定している位置が沢山あり、ifとかでプログラムを書くのは面倒なので デバッグで出来る方法が知りたいです。 昔VC4かBC2.0か忘れましたが、ウォッチ?で出来たような記憶がありますが・・・ 私は安直にプログラムを組んでいますが、 皆さんはクラスのメソッドなど使って、代入値の監視などしているのでしょうか? かなりパフォーマンスが落ちるので無意識に避けていましたが、 どんなプログラムの作りが現在標準なのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

回答1です。 >Express版では右ボタンで「条件」など表示されませんが、 >仕様でしょうか? よくわかりませんが、機能削減されているのかもしれません。苦肉の策ですが、 if( i==2 && ary[i]==0) { i=i; } という無害なコードを追加して、「i=i;」にブレークポイントを設定しておくという手は考えられます。変数iは実際に使用しているものに置き換えてください。

atoranta01
質問者

補足

ありがとうございます。 これぐらいの対応しかできなさそうですね。 VS2005で書き直すしかないかな。

その他の回答 (3)

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.4

http://msdn.microsoft.com/ja-jp/library/9k643651.aspx これを使って、どうにかできないかと思ったのですが、 一度ご覧になってみて下さい。

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.2

ブレークポイントを作成し、その上(赤○)の上で 右クリックすれば表示されると思います。

atoranta01
質問者

補足

それがC# 2008 Express版では出ませんでした。 VS2005では条件というメニューは出ました。 Expressには、こんな制限もあるのでしょうか?

回答No.1
atoranta01
質問者

補足

Express版では右ボタンで「条件」など表示されませんが、 仕様でしょうか? それとも設定が悪いのでしょうか?

関連するQ&A

  • 【デバッグ】変数の値が変わるとブレーク、ある値になったときにブレーク

    VC++2005で、ウオッチウインドウに変数を表示させる方法はわかりますが、ある変数の値が変わったりとか、ある値になったときにブレークする機能ってあるのでしょうか? ※昔、何かの開発ツールでそのような機能を見たことがあったので・・・

  • 配列に値を入れるのを簡略化

    配列に値を入れるのに簡略化する方法はないのでしょうか? ---ソース--- //グローバルで初期化 static int a[5]={0}; void main void{ //メイン関数で値を代入 宣言と共に初期化する場合はa[5]={ 4,6,9,2,7 } と簡略化できるのに値を代入する場合はいちいちひとつづつ値を代入しないといけないの? a[0]=4; a[1]=6; a[2]=9; a[3]=2; a[4]=7; }

  • 配列の値をまとめる?

    いつもお世話になっております。 Javaプログラミングについて質問させてください。 プログラム中で配列を用意しています。 (String[] param = new String[7]) この配列には値が入っています。 (param[0]="000",param[1]="000",param[2]="000",param[3]="111",param[4]="111",param[5]="333",param[6]="333") 配列に入っている値は全部で7つですが、種類としては3つです。 ("000","111","333") 配列に入っている値を元に、上記の種類(3つ)を格納するようなメソッドはありますか? ご存知の方がいらっしゃいましたら、ご教授ください。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 配列の値をループ

    よろしくお願いします。 例えば、$ary=array(1,2,3,4,5,6,7); という配列があるとします。この1,2,3,4,5,6,7の値を ループで表現することは可能でしょうか?? for文で試してみましたが、 $hoge="for($i=0;$i<7;$i++){ print $i; }"; $ary=array($hoge); 表示結果 for($i= でした。""で囲んだのでそのまま文字としてなったんだと 思います。""をはずすとエラーになります。 理想の表示結果は当然 1,2,3,4,5,6,7です。 行いたいことの意図はわかっていただけたでしょうか? 可能な場合、どういう記述をすればうまくいくのでしょうか? それとも不可能なのでしょうか?よろしくお願いします。 環境 php4.4.4 apache2 winXP

    • ベストアンサー
    • PHP
  • 変数の値の確認方法について

    Visual Studio 2010 Express WIN32 ユニコードビルド C言語 でプログラムを勉強中なのですがデバッグ中の変数の値の確認の仕方でわからないことがあります。 下のようなプログラムを作りx=HIWORD(lParam)*2;の次の行にブレークポイントを設定しました。 この式に*2がなければxを確認すればすむ話なのですが右辺に複数の値がある場合はHIWORD(lParam)の値が確認できません。 ブレークポイントで止まった時に(lParam)の上にカーソルを移動すると32637974と表示されxの上では996と表示されました。 たぶん右側はlParamの上位ワードを取り出す前の値が表示されているのだと思います。 HIWORD(lParam)の値を事前に変数に代入していない状態で、デバッグ中に上位ワード取り出し後のlParamの値を確認する方法がありましたら教えてください。(例えばxが496でHIWORD(lParam)が32506902と表示される場合に、右のHIWORD(lParam)の上にマウスを移動すると496と表示されるようにする方法) LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) { static int x; switch(message){ case WM_CREATE: break; case WM_SIZE: x=HIWORD(lParam)*2; break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,message,wParam,lParam); } return 0; }

  • 大きな配列データを複数ある場合のデータ保持の方法

    indowsXP VC++.net2003で開発をしています。 100*100程度の2次元配列が20から50程度ある場合、データはどう保持しているのが良いのでしょうか? 同時に使うのは1個のみですので、すべて宣言するのはメモリの無駄だと思っています。 思いついた方法は 1.テキストファイルに保持しておく 2.データベースに保持しておく の2つですが、ユーザーに配列の中身が見られたり変更されたりするのも困るので1の方法は却下しました。 2の方法ですがデータベースを用意するのは無理なのであきらめました。 また、配列データはツールから作成しており、以下のように宣言しやすいように表示されます。 値をひとつひとつ代入して初期化するのも大変なので、できればこの表示をいかしたまま、 必要な配列を取り出して扱うということをしたいのですが、何か良い方法はないでしょうか? それともint型の100*100の2次元配列 50個程度なら宣言したほうがいいのでしょうか? int test[32][32] = { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 以下省略

  • 返り値の配列中の1つの値のみ受け取りたい。

    関数で、例えば配列型を返す関数oshiete()があるとします。 これを個別の関数に割り当てる場合は以下のようになります。 list($var1, $var2, $var3) = oshiete(); あるいは $vars = oshiete(); $var1 = $vars[0]; $var2 = $vars[1]; $var3 = $vars[2]; もし返ってくる配列中の値のうち、1つだけ取り出したい場合は以下のようになります。 $var1 = oshiete(); $var1 = $var1[0]; しかし、ここで2行書くのが無駄に思えて仕方がありません。 1行目の「$arr = 」に続けて、関数oshiete()の値を1つだけ取り出す方法って無いのでしょうか?「$arr = oshiete()[0];」のような書き方は駄目でした。 あと、もし2行で書く方法し無い場合、関数oshiete()が1つの値を取り出すことだけが目的で、かつそれ以降使うことが無い場合、配列を一旦変数$var1に入れて次にその変数に上書きする形で値を代入する方法は、メモリ消費量などの観点から見ると有用でしょうか?他で使わないなら別の変数名を容易するのは無駄に思えます。

    • 締切済み
    • PHP
  • 二つの配列から、同じ値のもの以外を他の配列に入れたい。

    二つの配列から、同じ値のもの以外を他の配列に入れたい。 @tmp = ('1','2','3','4','5'); @tmp2 = ('1','3'); ↓ @tmp3 = ('2','4','5'); 重複を除くの方法はあったのですが、 この場合は、逆の結果が欲しいです。 上記のような結果が欲しいのですが、 うまくできませんでした。 どなたかご伝授いただけないでしょうか?

    • ベストアンサー
    • Perl
  • フォームから値を配列に渡すときの処理方法

    フォームから値を配列に渡すときの処理方法 PERLでフォームからのデータの受け取り方、処理の仕方でご教授頂ければ助かります。 よろしくお願いいたします。 配列の要素数の調べ方、処理方法についてご教授頂ければ幸いです。 HTMLよりフォームのデータをcgi-lib.plの[&ReadParse(*in);]受け取っているのですが ●HTML側 セレクトボックスを5つ用意し同じNAME (select01)のnameを付けて CGI側で受け取りたいと考えております。 (基本的に間違えでしょうか?セレクトボックスの個数分用意したほうがいいでしょうか?) 受け取った値をCGI側で受け取り要素の個数をカウントさせ 条件に合わせてERRORを出したいと考えたのですが・・・ エラーの内容は 1っこ選んであればOKでそれ以外 0の場合はNG 2個以上選択した場合は NGという形を取りたいのですが。 配列の要素数で分岐できるのかと考えたのですが そもそもこの考え、処理方法は間違えでしょうか? アドバイスを頂ければ幸いですm(__)m require 'cgi-lib.pl'; &ReadParse(*in); ------------------------- # データ代入 @aaa =$in{'select01'}; #フォームデータを配列に代入 $count= @aaa; この場合だと 要素の数($count)は 1になっております。 いろいろ調べていますと cgi-lib.pl を使用した場合はブラウザ上で スペースに見えるが \0 だそうで・・・・ カンマで区切って 要素数を正しく表示させたいと思ったのですがうまくいきません。。 @aaa = split(/\0/,$in{'select01'}); などいろいろ試してみたのですが区切りがうまくいきません また、 $" = ','; @aaa = split(/\0/,$in{'select01'}); とすると カウントが変わったのですが・・・・ フォーム側の一番目を選択して送信するとカウントが 1!!  1と5番目を選択して送信したら 5!え?? で要素数を正しくカウントされていないようです。 ちなみに print @aaa; としてみると aaa,,,,eee と空の内容がカウントされてる?ようなかたちになりました。 ここで、行き詰ってしまいまして、もともとの私の安易な考えが間違えなのか? 書き方が間違えなのか。 と思い皆さまのアドバイスを頂ければ幸いです。 ・プログラムの考え方的には間違えなのか ・一般的な正しい処理方法はどうなのか それとも。。。。要素数で分岐することが可能であるのか。 お手数ですがアドバイス頂ければ幸いです。

    • ベストアンサー
    • Perl
  • 二つの配列の要素を比べる方法がわかりません

    いつもお世話になっています。 n行3列の配列のVectorが二つあります。 その同じ行と列に対応する要素どうしを比較する ためにVectorから値を取得したいのですが、その 方法がわかりません。 なんとなくtoArrayというメソッドを使うんじゃないのかなあという気はしてるんですが…。 ちなみにVectorにaddするときは、1行3列のString型の配列をaddしています。 Vectorの配列から要素を取り出す方法をご存知の方が いらっしゃいましたら、ご教授ください。

    • ベストアンサー
    • Java

専門家に質問してみよう