![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C#でのキャスト(?)で困ってます。
うまく説明できないので、下にCっぽい処理を書きます。
struct _hoge{
int i;
char c[4];
double d;
};
void f(){
BYTE data[16];
stream.read(data); // 何かから16Byte読み込み
_hoge *st = (_hoge*)data; // ←ここ
TRACE("%d,%c,%f",data->i,data->c[0],data->d);
}
//(結構いいかげんです)
上記処理のように、BYTEの配列で取得したデータを「struct _hoge」の型にキャストしてそれぞれの要素を取り出す、ということをC#で実現したいのですがMSDNやWebを結構探したのですがわかりませんでした。(何で検索していいのかがわかりませんでした・・・)
実現方法(もしくは検索キーワード)がわかる方、教えてください。
No.2ベストアンサー
- 回答日時:
No.1
- 回答日時:
そういう処理はシリアライズといいます。
適当なクラスや構造体は[Serializable]と宣言することでシリアライズできるようになります。
以下サンプル
//-------------------------------------------------------------------
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
struct Hoge {
public int i;
public char[] c;
public double d;
override public string ToString(){
return String.Format("i:{0}\nc:{1}{2}{3}{4}\nd:{5}",
this.i,
this.c[0],this.c[1],this.c[2],this.c[3],
this.d );
}
};
class Sample {
public static void Main(){
Hoge aHoge;
aHoge.i=10;
aHoge.c= new char[4];
aHoge.c[0]='T';
aHoge.c[1]='E';
aHoge.c[2]='S';
aHoge.c[3]='T';
aHoge.d=3.1415926;
// 保存
FileStream file = File.Open("Hoge.DAT", FileMode.Create);
BinaryFormatter aBinFormat = new BinaryFormatter();
aBinFormat.Serialize(file, aHoge);
file.Close();
aHoge = new Hoge();//中身を別のオブジェクトにする
// 読込
if(File.Exists("Hoge.DAT")){
file = File.Open("Hoge.DAT",FileMode.Open);
aBinFormat = new BinaryFormatter();
aHoge = (Hoge)aBinFormat.Deserialize(file);
file.Close();
}
Console.Write(aHoge);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# アセンブラ指令 3 2023/06/17 14:47
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Excel(エクセル) 格納したデータを配列のように扱う方法はありますか? 8 2023/06/05 08:53
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvファイルを読み込み→上書き...
-
C言語でCSVファイルの行数を読...
-
Resource id #3 と表示されま...
-
phpでCSVファイルの中身を多次...
-
CSVデータの行数カウントをした...
-
データベースに登録はされるが...
-
phpを実行するとファイルダウン...
-
バイナリファイルの内容を、そ...
-
データ受け取り
-
PHPでCSVの一部の行を編集したい
-
「test.php?」の後のデータの読...
-
変数の中に変数を
-
二次元文字列をポインタで操作...
-
デザインとプログラムの分離
-
エラーメッセージ(無効な間接...
-
DBを使用しないで条件にマッチ...
-
配列をファイルに書き込む方法
-
二次元配列の削除
-
csvのソーティング
-
何が起きてたのか教えてもらえ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
Resource id #3 と表示されま...
-
ヒアドキュメントの中のfor文
-
自動で番号を振りたい
-
C言語でCSVファイルの行数を読...
-
配列同士の足し算のループ処理
-
stdClass Objectを連想配列のよ...
-
PHPでCSVの一部の行を編集したい
-
phpを実行するとファイルダウン...
-
行数が30万件ほどあるCSVから、...
-
phpでCSVファイルの中身を多次...
-
php Undefined variableエラー
-
CSVデータの行数カウントをした...
-
csvの内容を行単位で削除したい
-
複数ファイルで、それぞれの行...
-
テキストデータから指定行の削除
-
rubyで複数列のデータを一行に...
-
PHP5でCSVの指定行データだけを...
おすすめ情報