私は3つの他、常に最初の8バイトである頭部、バイト8から常にであるボディを作る必要があると、生のバッファを持っている?それからの足は?彼のファイルの最後に。byte []バッファまたは参照/ポインタ? C#で
私は体と足を埋めることができるように、私は既に存在するバッファからバッファを作る方法を教えてください。また、どのように最初の16バイトを使用するヘッドを作成するのですか?私は、リファレンスまたはポインタを使用していないと仮定しています。
私は3つの他、常に最初の8バイトである頭部、バイト8から常にであるボディを作る必要があると、生のバッファを持っている?それからの足は?彼のファイルの最後に。byte []バッファまたは参照/ポインタ? C#で
私は体と足を埋めることができるように、私は既に存在するバッファからバッファを作る方法を教えてください。また、どのように最初の16バイトを使用するヘッドを作成するのですか?私は、リファレンスまたはポインタを使用していないと仮定しています。
Array.Copy()を使用して、ある配列から別の配列に要素をコピーできます。送信元と送信先の開始位置と終了位置を指定できます。
また、Buffer.BlockCopy()をチェックしてみることもできます。
Buffer.BlockCopyを試してください。これは、配列操作と比較してプリミティブ型の方が高速なパフォーマンスを提供するはずです。
あなたはMemoryStreamを
System.IO.MemoryStream stm = new System.IO.MemoryStream(buf, 0, buf.Length);
System.IO.BinaryReader rdr = new System.IO.BinaryReader(stm);
int bodyLen = xxx;
byte[] head = rdr.ReadBytes(8)
byte[] body = rdr.ReadBytes(bodyLen);
byte[] foot = rdr.ReadBytes(buf.Length-bodylen-8);
からBinaryReaderを使用することができます(なぜ?私は、MSDN said soすぎないかわからない)http://stackoverflow.com/questions/409256/working-with-を見てバイト配列のCおよびhttp://stackoverflow.com/questions/2871/reading-acc-data-structure-in-c-from-a-byte-array –