2016-04-18 12 views
0

私は、ファイル内からバイトの大きなセクションを削除し、元の削除されたバイトと同じ場所から始まるバイトの新しい大きなセクションを挿入することを検討しています。誰もこれについてどうやって行くのか知っていますか?私はオンラインで助けを見つけることができません。16進数でC#内のファイルを編集していますか?

ご協力いただければ幸いです。

ありがとうございました。

+0

どのように処理するのが分かりませんか?ファイルの読み込み、読み込みファイルの編集、または編集したファイルの保存? –

+0

@ScottChamberlainのチュートリアルをたくさん見つけられるはずです。私は16進エディットパート(既存のバイトを削除して新しいものを追加する方法)をどうやって行うのかよく分かりません。私は前にC#でそれのような何かをしたことはありません。 – MattFiler

+0

あなたが挿入を言うとき、あなたは、オフセットを過ぎている宛先ファイルのバイトを保存することを意味しますか?また、どのくらいのデータがありますか?それがメモリ上に合理的に保持できる範囲を超えている場合は、バイトを転送する間にバッファを保持するための追加コードが必要になります。 –

答えて

1

これはあなたが開始するはずです。

手順は以下の通りです:

  1. 編集したい位置を探します。
  2. 新しいデータ
  3. を準備

を書きます。

using System; 
using System.Text; 
using System.IO; 

namespace Test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      using (BinaryWriter writer = new BinaryWriter(File.Open("TextFile1.txt", FileMode.Open, FileAccess.ReadWrite))) 
      { 
       int offset = 1; //position you want to start editing 
       byte[] new_data = new byte[] { 0x68, 0x69 }; //new data 
       writer.Seek(offset, SeekOrigin.Begin); //move your cursor to the position 
       writer.Write(new_data);//write it  
      } 
     } 
    } 
} 
+0

応答のおかげで、別のBinaryWriterを使用してnew_data変数を別のファイルの内容で埋めることは可能でしょうか? – MattFiler

+0

あなたはBinaryReaderを使用してバッファにデータを設定し、同じフローに従うことができます。 (必要に応じてチャンクで行う)https://msdn.microsoft.com/en-us/library/system.io.binaryreader(v=vs.110).aspx – TLJ

関連する問題