gerade einen Mod Installer hex einer Spiel-Datei zu ändern, aber es scheint nicht, es zu schreiben richtig dies ist der Code verwende ich es schreiben:C# schreiben zu Hex-Datei
BinaryWriter BWriter = new BinaryWriter(File.OpenWrite(HexFile));
for (int i = value; i < value2; i++)
{
BWriter.BaseStream.Position = i;
BWriter.Write(NewHex);
}
Und das ist die „NewHex“, dass er schreiben soll:
1A 00 00 00 04 0B 19 01 4F 02 00 00 0A 00 00 00 00 00 00 1B 66 03 00 00 00 00 00 00 16 53 00 00
Aber es macht das nicht, sondern wandelt sie, dass hex-String in binären und schreibt sie dann in die Datei in etwas resultierenden völlig anders und es schreibt ein Bündel von Kauderwelsch bis zum Anfang: vor der Hex-Saite, in diesem Fall waren 2 Zeilen aus 61 Platz vor diesem Hex so bre aking das Spiel
Kennt jemand eine Lösung für dieses Problem?
Dank
EDIT: das erste Problem wird behoben, schreibt jetzt richtig, das ist der neue Code:
private void button4_Click(object sender, EventArgs e)
{
int value = (int)new System.ComponentModel.Int32Converter().ConvertFromString(StartAddr);
int value2 = (int)new System.ComponentModel.Int32Converter().ConvertFromString(StopAddr);
//int StopInt = int.Parse(StopAddr);
BinaryWriter BWriter = new BinaryWriter(File.OpenWrite(HexFile));
for (int i = value; i < value2; i++)
{
BWriter.BaseStream.Position = i;
BWriter.Write(StringToByteArray(NewHex));
}
}
public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
Ich kann sehen, dass es die Hex jetzt richtig, aber es ist immer noch ein Thema geschrieben , schreibt es diese:
1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 00 00 00 04 0B 19 01 4F 02 00 00 0A 00 00 00 00 00 00 1B 66 03 00 00 00 00 00 00 16 53 00 00
Statt dessen:
1A000000040B19014F0200000A0000000000001B660300000000000016530000
Kennt jemand eine Lösung für dieses Problem?
Was ist 'NewHex'? –
ok, während du vielleicht einen hex mod für ein spiel hast, weißt du, dass die spieldatei binär ist, und als folge ist das hex nur eine menschliche interpretation richtig? – BugFinder
@BugFinder Behoben das erste Problem, aber immer noch dieses komische Kauderwelsch-Ding:/ – user265889