- ベストアンサー
C# バイナリダンプを構造体に簡単に入れる方法
C#初心者です。 バイナリファイルをダンプしてイメージヘッダ等を構造体に入れて 各フィールド単位で操作したいのですが、最も簡単な方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- takoashi
- ベストアンサー率39% (21/53)
- machongola
- ベストアンサー率60% (434/720)
関連するQ&A
- 構造体のテンプレートを適用した状態で一覧できるバイナリエディタ
バイナリのファイルを構造体テンプレートを適用した状態で一覧して、できればテキストファイルに落とせるソフトを探しています。フリーでもシェアでも構いません。 あるフリーのバイナリエディタを使用してみたのですが、構造体テンプレートを適用した状態で見られるのは1レコードずつで、全体を見たり、テキストファイルに変換したりができませんでした。 またそれ以外でも何か良い方法があれば教えてください。 C言語でプログラムを書いてもいいのですが・・・できれば簡単にしてしまいたいので。 よろしくお願いします。
- ベストアンサー
- フリーウェア・フリーソフト
- 構造体の変数をバイナリモードで書き込んだのですが
C言語初心者です。 以下の様なプログラムで構造体の変数をバイナリモードで書き込んだのですが #include "stdafx.h" struct TBL { char c; int i; }; int _tmain(int argc, _TCHAR* argv[]) { FILE *fp; TBL sample; sample.c = 'A'; sample.i = 'A'; fp = fopen("sample.dat","wb"); fwrite(&sample,sizeof(TBL),1,fp); fclose (fp); return 0; } できた”sample.dat”をダンプしてみると 41 CC CC CC 41 00 00 00 EOF となり char型のデータも4バイトデータを所有しているのですがどうしてでしょうか。
- ベストアンサー
- C・C++・C#
- Java バイナリデータの扱い
既出でないことを確認してみたつもりです。 <やりたいこと> 1.バイナリデータに埋め込まれたデータを読み込みたい。 2.バイナリデータの並びは例えば double d1,d2; char buffer[256]; int i1, i2; などとなっていてファイルヘッダとして同じフォーマットのファイルには全て埋め込まれています。これを読み込みたいです。 <質問> C言語であれば例えば構造体を定義してやって構造体のポインタに対して ヘッダの読み込みを行ってやれば上記のdoubleなどの変数は参照できる ようになりますが、Javaで同等の処理をやろうとするとどうすれば 良いのかわかりません。 良い方法があれば教えて下さい。宜しくお願いします。
- ベストアンサー
- Java
- C++/CLIでネイティブの構造体を使用したい
すみません。C++の初心者です。 C++/CLIフォームアプリケーションで関数の呼出し画面を作成しています。 既にある(C++ネイティブで作成済み)のヘッダファイルをプロジェクト上にコピー、追加して ヘッダファイル内に書かれている構造体を使用したいのですが、 出来ないのでしょうか? ヘッダファイル(xxx.h)内には以下のような構造体が作成されています。 typedef struct { double pq_base; int iter_max; double eps; int chi_set_flg; int bad_rmv_flg; int obs_slk_flg; int obs_before_flg; int calc_pf_flg; double *chi_val_95_0; double *chi_val_97_5; double *chi_val_99_0; }s_SE_SET; C++/CLIのプロジェクト内にこのヘッダファイルを追加して フォーム内のあるボタンを押された時に、この構造体を参照させてあげたいのですが、 以下の様に構造体変数を定義して s_SE_SET se_set; ビルドを行うと以下のエラーが出ます。 error C4368: 'se_set' をマネージ 'se_project::Form1' のメンバーとして定義できません。 混合型はサポートされていません C++/CLIではネイティブで定義された構造体は使用出来ないのでしょうか? なにか方法が有るとすればその方法を教えて頂けると嬉しいです。 どなたかご教授頂けませんでしょうか。 よろしくお願い致します。
- 締切済み
- C・C++・C#
- バイナリエディタはどう使うの?
先日配布するために作成した音声ファイルや画像ファイルを全て.datに書き換えました。 しかし計画性無く全て書き換えてしまったので一体どれがどのファイルか わからなくなってしまいました。 そこでバイナリエディタで開いてみたのですが、よくわかりません。 .wavファイルはバイナリエディタのヘッダを見たらwavと書いてあるのでわかるのですが、 何も書いて無いファイルもあります。 そこでちょっとバイナリについて勉強してみようかと思ったのですが そんなバイナリについて詳しく説明してあるサイトとか本とかありますでしょうか。 ヘッダファイルはこんな構造になっているとか。 よければ本やサイトのオススメを教えてください。 よろしくお願いします。
- ベストアンサー
- Windows XP
- 構造体の宣言方法について
構造体の宣言で ヘッダーファイルに struct RAM rom_AAA[20] を宣言 Cソースファイル(上記のヘッダーファイルをインクルードする)に struct RAM { struct BBB *CCC } を宣言 とした時 rom_AAA[20]と*CCC(BBBアドレス)はリンクしてる状態になるのでしょうか? 構造体の一部の定数テーブルを参照するために 間単にポインタ使ってグルグル回したいのですが、同じものをアクセスしてる事にならないでしょうか?
- ベストアンサー
- C・C++・C#
- バイナリ→構造体
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1087139 の続きです。仕様の都合でMoveMemoryを使って構造体をファイルマッピングできないため、一度文字列にして…と考えていたんですが、どうも文字列にすると別な問題が出るようなのでLong型のポインタにしたいと思ってます。 何故Longかと言うとこれも仕様の都合なので…Byte配列にとは出来ないんですが…同じ、ですよね? 蛇足が長々と続きましたが、本題は… 1、VarPtrを使ってLong型のポインタに変換(してると思ってます) 2、それを別の構造体に格納、その構造体を共有メモリに移す。 3、別ウインドウから取り出し、最初のLongのポインタを引き抜く 4、Long型ポインタから構造体に戻す となれば完成で、3までは進めるのですが…最後の4ができません。 ここから再び蛇足ですが、そもそも何故こんな面倒な事を?といいますと、共有メモリを扱うOCXを作る必要がありまして、さらに受け取ったデータをCue構造にしなければならないのです。その辺りを操作してるのが2つ目の構造体です。1と4はOCXを扱う側、2と3はOCX内で行ってます。 出来れば全部OCX内で出来るといいなーとは思ってますが…すいません、本当に蛇足でした。
- ベストアンサー
- Visual Basic
- 可変長構造体をファイルから読み込み処理
可変長の構造体、 typedef struct 構造体(仮) { char c1,c2; float f1,f2; double d; int size; //↓strのサイズ char str[1]; //文字配列 }構造体(仮); の形式で書かれたバイナリデータファイルがあります。 そのファイルを読み込んでcsv形式で出力する処理を、 ファイルからの読み込む回数を減らしてやりたいと思っています。 その方法を教えていただけませんか? よろしくおねがいします。
- ベストアンサー
- C・C++・C#
- 82 00 00 41で始まるバイナリ
サイズの大きなバイナリファイルを入手しました。 ダンプすると先頭は 82 00 00 41~ でした。 ダンプの最後は 05 F0があって、そのF0以降はたくさんの00でした。 思い当たるファイルフォーマットはありませんでしょうか?
- 締切済み
- その他(カメラ・ビデオカメラ)
- PX-M791FTの管理者パスワードの初期値がわからないです。
- EPSON社製品のPX-M791FTの管理者パスワードの初期値を教えてください。
- EPSONのPX-M791FTの管理者パスワードの初期値が分かりません。
お礼
回答ありがとうございます。 見よう見まねでクラスを作って試してみたら結構簡単に出来ました。 こちらの方がややこしくなくていいですね。しかも想定外のC#での初自作クラスも経験できたのでよかったです。 でもMSDNは初心者にはとっつきにくいです。でももっとよく調べるよう心がけます。 どうもありがとうございました。 この質問はこれで打ち切りにいたします。 回答してくださった両名の方々ありがとうございました。