C# C二进制读写器

C# C二进制读写器,c#,binaryreader,binarywriter,C#,Binaryreader,Binarywriter,我遇到的问题是: 我正在使用二进制读取器读取字节数组,以构建用于编辑文件的windows gui,例如,我正在读取以下字节数组: 123cbb75 我可以很容易地编辑第一个字节,因为它有两个整数表示 使用Convert.ToByte编辑文本框中的字符串并将其写回二进制文件 问题是:如何编辑文本框中的单数值,以便它可以使用binarywriter(如文本框3或4)正确地写回值。我不能使用Convert.ToByte,因为它是单数数字或字母数字 bw.WriteConvert.tobytextbox

我遇到的问题是:

我正在使用二进制读取器读取字节数组,以构建用于编辑文件的windows gui,例如,我正在读取以下字节数组: 123cbb75

我可以很容易地编辑第一个字节,因为它有两个整数表示 使用Convert.ToByte编辑文本框中的字符串并将其写回二进制文件

问题是:如何编辑文本框中的单数值,以便它可以使用binarywriter(如文本框3或4)正确地写回值。我不能使用Convert.ToByte,因为它是单数数字或字母数字


bw.WriteConvert.tobytextbox3.Text,16//如果要将3更改为5,则将数据写入文件时输出不正确。

我不确定您要执行的操作。但由于文本框只有一个字符串,因此可以执行以下操作:

bw.Write(Convert.ToByte(textBox3.Text[0], 16));
下面是更多将字节写入文件然后将其读回的代码:

var a = Convert.ToByte('a');
var one = Convert.ToByte("1", 16); // If you want to provide the base

using (var writer = new BinaryWriter(File.Open("Path", FileMode.Create)))
{
    writer.Write(a);
    writer.Write(one);
    writer.Write("X"[0]);
}

using (var reader = new BinaryReader(File.Open("Path", FileMode.Open)))
{
    var aa = (char)reader.ReadByte();
    Console.WriteLine(aa);
    var oneOne = (char)reader.ReadByte();
    var x = (char)reader.ReadByte();
}

你想做什么?我想做一个最终用户可以编辑ROM文件的应用程序……因此,如果用户通过GUI选择某些条件,以下7个文本框将填充从字节转换为字符串的数据,以便在文本框中显示。因此,如果最终用户想要编辑易于编辑的player num,只需通过文本框编辑12到15,但是诸如quickness之类的属性仅由B表示,字节的第二个值表示另一个属性。我不知道如何编辑一个值,因为Convert.ToByte不能正确使用一个值。@celtics33它不能工作是什么意思?我在回答中列举了许多例子。你试过了吗?
var a = Convert.ToByte('a');
var one = Convert.ToByte("1", 16); // If you want to provide the base

using (var writer = new BinaryWriter(File.Open("Path", FileMode.Create)))
{
    writer.Write(a);
    writer.Write(one);
    writer.Write("X"[0]);
}

using (var reader = new BinaryReader(File.Open("Path", FileMode.Open)))
{
    var aa = (char)reader.ReadByte();
    Console.WriteLine(aa);
    var oneOne = (char)reader.ReadByte();
    var x = (char)reader.ReadByte();
}