VC++6.0 SDI ファイル操作 数値変数出力 – プログラミング – Home

VC++6.0 SDI ファイル操作 ...
 
通知
すべてクリア

[解決済] VC++6.0 SDI ファイル操作 数値変数出力


merlo
 merlo
(@merlo)
ゲスト
結合: 23年前
投稿: 85
Topic starter  

こんにちは
今週の月曜からVC++を始めた初心者ですが
よろしくお願いします.

さて,今日まででやっと,SDIウィンドウに
ディスク上のBMPをAPIで表示させるまでに至りました.

BMPにおける被写体(実際には,写っている微小粒子の粒径)を
マウスでクリックしては,その半径情報のみを
CDoc.hで宣言したpublic変数に保存し(大きな保存用配列を用意してある),
serializeメンバ関数内で,そのデータを保存しています.

しかしながら,
if (ar.IsStoring()){ * }ここに記述すると
(例えば,ar << data1;),出力ファイルがバイナリファイルに
なってしまいます.これでは,エクセルで読み込めません
(読み込む方法を知りません).
数値をアスキー(というのでしょうか)で出力するためには,
どのようにすればいいのでしょうか.

ちなみに,今は応急処置として,
CString ss;
ss.Format(%f %f %f\n,data1[i],data2[i],data3[i]);
ar << ss;

としています.しかし,もっと基本的な方法があるような気がしてやみません.

上述のserialize関数以外にも,私は
CFile fout;
等とやって,同じくSDIのツールバーに新規作成させたアイコンに
ファイル保存の役割を担わせる方法も知っていますので,
幅広いアドバイスをよろしくお願いします.

PS
アスキーとは,テキストエディタで普通に慣れ親しんでいるファイル形式として
使いました.間違った用法でしたら,すみません.
また,(ss.Format(%f %f %f\n,data1[i],data2[i],data3[i]);
)の記述では,テキストエディタの種類により改行がうまく機能しません.
\n\0 , \0ax? 先のような改行キーワードを見かけたことがありますが,
(つまり,学習したが理解できなかった)これで解決できるものなのでしょうか
(当然やってみたができませんでした)

以上,よろしくお願いします.


引用未解決
トピックタグ
merlo
 merlo
(@merlo)
ゲスト
結合: 23年前
投稿: 85
Topic starter  

//上述のserialize関数以外にも,私は
//CFile fout;
//等とやって,同じくSDIのツールバーに新規作成させたアイコンに
//ファイル保存の役割を担わせる方法も知っていますので,

C***Dlgをつかっていたような・・・(←何回か記述経験しました)
ファイルが学校にあるので,
今手元で確認できません・・・・


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CDocumentのシリアライズ機能は、作業状態の保存と復元のために用意された仕組みです。
ですから、別のアプリケーションで見るための出力ファイルを作成する用途で
使うべきではないと思います。
また、シリアライズ用に開かれたファイルは、「バイナリ形式」になっており、
書き込み時に「\n」を適切な改行コードに変換してくれません。

> CFile fout;
> 等とやって,同じくSDIのツールバーに新規作成させたアイコンに
> ファイル保存の役割を担わせる方法も知っていますので,

したがって、上記方式でテキスト形式で出力する機能を別途作成する方法をお勧めします。
だだし、ファイルをテキスト形式(「\n」を正しく変換するモード)で開くには、
CFileの代わりに、CStdioFile を使用します。

また、数値をテキストにする方式としては、

> CString ss;
> ss.Format(%f %f %f\n,data1[i],data2[i],data3[i]);

のようにするのが通常の方法です。
数値をどのような書式のテキストに変換するかは、
プログラマだけが知っていることですので、具体的にFormatするしかありません。


返信引用
merlo
 merlo
(@merlo)
ゲスト
結合: 23年前
投稿: 85
Topic starter  

的確なアドバイス,本当にありがとうございました.
非常にわかりやすかったです.m(_ _)m


返信引用
merlo
 merlo
(@merlo)
ゲスト
結合: 23年前
投稿: 85
Topic starter  

解決しました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました