今までは、VC++6のベクトル型変数をウォッチで指定して、
止めて、そこで、+をーにして、各要素が見えるように開いて、
シフトキーを押したまま、↓キーで、ドラッグしておいて
(全て選択は使えない)、コピー&ペーストで、
EXCEL側に移しています。
1つのベクトル変数の移動くらいならば、
そう大したことは無いのですが、
4つ、5つともなると大変。
もっと簡単にいく方法はないのでしょうか?
ベクトル型変数ってなに?
ベクトル型とは
int d;
というような
スカラでなくて、
int a[100];
double b[200];
と言ったタイプのものです。
Dump/Traceなどを埋めこんでみるとか?
# なんでそんなことがしたいのか、用途にもよりますが、
# プリントスクリーンの方が早かったりして。
CSVで吐き出せば良いのでないかい?
FILE *fp = fopen(hoge.csv, w);
for (int i = 0; i < 100; i++)
fprintf(fp, %d, %d, %lf, i, a[i], b[i]);
fclose(fp);
EXCELの縦長 ⇔ C言語の横長 は可能?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200609/06090047.txt
EXCELのデータ(縦書き)をVC++(横書き)にそのまま貼り付けるには
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200512/05120029.txt
EXCELからの列方向のデータを、カンマ区切りにする変換は可能か?
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200510/05100014.txt
今気付いたが改行を忘れていた。
%d, %d, %lf\n
デバッグ時に、正しい(期待した)データかどうかを確認するのに
デバッガ画面では見づらいからどうしてもexcelで見たいという要望かも試練
%lf ってC99からだっけ。VC++6はC90だから %f のほうがただしいっす。
> デバッグ時に、正しい(期待した)データかどうかを確認するのに
> デバッガ画面では見づらいからどうしてもexcelで見たいという要望かも試練
うーむ。
そういう事、考えた事無かったなぁ。
私の場合、どうしても一望したい時はメモリウインドウにアドレス直打ちで見てた。
見やすく出したいなら私もTRACEを使うと思う。
TSXBINというバイナリエディタに開発者用の機能で共有メモリ上に載せた
内容をバイナリエディタ上で参照できると言うような使い方があったと記憶していますが、
これはちょっと特殊ですかねぇ。
数KBYTE程度ならCreateFileとWriteFile等で保存できると思います。
保存できたら後はバイナリーエディタで調べればいいと思います。
僕も上の方法を良く使っています。
USB,RS-232C等で取得したデータの判断に使っています。
本題とは関係ないけど
インポーズだのベクトル型だの自己流の呼び方しないで他人にもわかるように書こうよ
みなさん。
いろいろありがとうございます。
書き方でわかり辛い面があったのは陳謝します。
変数名付きで、CSVで吐き出すのは、
EXCELにすぐ持ち込めるので、楽そうですね。
これは気づかなかった。
私が、これを聞いている一番の要因というのは、
関数の出力をグラフにプロットしたい、からと
いうことなのですが、VC++6やMS2005あたりでは、
グラフ機能はないのでしょうか?
> グラフ機能はないのでしょうか?
ないです。(扱うデータにもよるでしょうが、普通、必用な機能ではないと思います)
抜本的な問題として、デバッガとあわせて使うためのプログラムって問題ありのよう
な気が…
デバッガはデータの解析ツールでは無い筈ですから、その辺りは自前で用意しな
いことには何ともならないかと。
自分でプログラムにグラフを出力する機能を組み込むって手段は問題外でしょう
か。
デバッグのためにグラフを描画したいのなら、
ブレークポイントの手前で必要な変数の要素をすべてCSV形式で保存した後
じっくりとエクセルでグラフ化すればいいと思いますが....
今のエクセルならいろんなグラフ作れると思います。
>グラフ機能はないのでしょうか?
ありません。
基本的に、CDC::MoveTo、CDC::LineToを使って1ドットずつ描画していくだけです。
有隣堂や紀伊国屋クラスの本屋さんの数学書の統計(かな?)辺りのコーナに行けば
何かしら本があるはずです。使用言語は、BASICかFORTRANですが、置換えは可能
だと思います。