-2

ユーザーがファイル内の特定の 16 進コードを検索できるようにするプログラムを作成したいのですが、出力はオフセットまたは見つかりません。私がこれまでに持っているコードは次のとおりです。

 namespace search
 {
class Program
{
    static void Main(string[] args)
    {
        System.IO.BinaryWriter bw = new BinaryWriter(File.OpenWrite("C:\\1.txt"));
        bw.BaseStream.Position = 3;
        bw.Write((byte)0x01);
        bw.Close();
        Console.WriteLine("Wrote the byte 01 at offset 3!");
    }
}

}

私は Web のあらゆる場所を調べましたが、有用なものは何も見つかりませんでした。16 進コードを検索して、オフセットで出力することは可能ですか?

EDIT1:

このファイル 1.txt があり、このオフセット 0x1300 にこの 16 進コード 0120 / 0x01 0x20 / "0120" があるとします (書き方がわかりません)。プログラムを開くと、console.readline で検索する 16 進コードを尋ねられ、出力は 0x1300 になります。

EDIT2: 私の質問は、この VB.Net Get Offset Address に似ていますが、vb.net には解決策があります。

4

1 に答える 1

0

これは BinaryReader を使用して、ファイルに書き込んだバイトを見つけます。

//Write the byte
BinaryWriter bw = new BinaryWriter(File.OpenWrite("1.txt"));
bw.BaseStream.Position = 3;
bw.Write((byte)0x01);
bw.Close();
Console.WriteLine("Wrote the byte 01 at offset 3!");

//Find the byte
BinaryReader br = new BinaryReader(File.OpenRead("1.txt"));
for (int i = 0; i <= br.BaseStream.Length; i++)
{
     if (br.BaseStream.ReadByte() == (byte)0x01)
     {
          Console.WriteLine("Found the byte 01 at offset " + i);
          break;
     }
}
br.Close();
于 2013-10-26T18:16:38.747 に答える