バイナリデータの表示 – プログラミング – Home

通知
すべてクリア

[解決済] バイナリデータの表示


たまちゃん
 たまちゃん
(@たまちゃん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

こんばんは。

バイナリデータの表示についてお聞きしたい事があります。
CRichEditCtrlとCEditにバイナリデータを表示したいのですが、
表示する事は可能でしょうか?
現状では、文字が途中で切れて表示されているのですが・・・。

基本的な事なのかも知れませんが、初心者な者でお許し下さい。
ご存知の方おられましたら宜しくお願い致します。


引用未解決
トピックタグ
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

バイナリデータは表示できません。

DOS時代は、コントロールコード(00H~1FH)を表示すると改行したり、
ブザーが鳴ったりしていました。

確認したいのであれば、ダンプリストのように2桁で表示するしかないと思います。


返信引用
たまちゃん
 たまちゃん
(@たまちゃん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

アイススケーターさん、回答ありがとうございます。

やっぱり、無理なんですね・・・。

実際にやりたかった事は、受信したデータ(バイナリデータ)を画面
上に表示(その際、CEditやCRichEditCtrlを使用)し、表示したデ
ータを保存することでした。

上記のような事をする為には、どのような方法があるでしょうか?

何方か良い知恵をお貸しください。

それでは、宜しくお願い致します。


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

どう表示したいかによります。

というより、
『CEditやCRichEditCtrlに表示する』 
ということは『文字列に変換する』ということを内包しています。

どうにかして文字列にして、それを表示なり何なりしてやってください。


返信引用
たまちゃん
 たまちゃん
(@たまちゃん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

PAIさん、回答ありがとうございます。

>どう表示したいかによります。
バイナリエディタ(狐'sバイナリエディタ(フリーアプリ)
等)のような感じで表示したかったんですが・・・。

>どうにかして文字列にして、それを表示なり何なりしてやってください。
ということは、1文字1文字、文字変換していく方法しかないですよね。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 24年前
投稿: 106
 

なんとなく作ってみました。
コンパイルも動作確認もしてないので雰囲気だけ味わってください。

CString s_dsp, s_dsp1, s_dsp2 ;
char data[100] = abcdef\r\nghijh ;
CString s_tmp ;
for( int i=0; data[i] != '\0'; i++ )
{
// バイナリ表示分を処理
s_tmp.Format(%02X, data[i] );
s_dsp1 += s_tmp ;

// アスキー表示分を処理
if( data[i] > 0x20 && data[i] < 0x7f )
{
// そのまま表示する文字
s_dsp2 += data[i] ;
}
else
{
// そのままでは表示すると化けたりするので省略表示
s_dsp2 += ? ;
}

// 一行あたり16バイトで処理してみる
if( i%16 == 15 )
{
s_dsp += s_dsp1 + + s_dsp2 + \n ;
}
}

// 表示用処理されてない分を処理
s_dsp += s_dsp1 + + s_dsp2 + \n ;

// なんでもよいから表示
AfxMessageBox(s_dsp);


返信引用
たまちゃん
 たまちゃん
(@たまちゃん)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

んさん、回答ありがとうございます。

んさんのサンプルを参考にして、バイナリデータの表示(文字変換して)
を行う事が出来ました。

今回は本当にありがとうございました。
また、お聞きする事があると思いますが、その時は宜しくお願い致します。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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