ich versuch hier ne Binär Datei auszulesen mit der BinaryReader Klasse. Alles Passt, bis auf die integer, die sind alle falsch. Laut Recherche und rum testen sind es für die Integer immer 4 Bytes zum auslesen. Im Hex Editor bekomm ich bsw, 00-00-00-40, was 64 als wert ausgeben müsste, ich bekomme jedoch 1073741824. Ein anderes Beispiel, im Hex Editor steht 00-00-01-A9, was 425 sein müsste, ich bekomme jedoch -1459552256. Was ich im Hex Editor auslese und ins Dezimale umrechne sollte Stimmt.
Weiss da jemand, was ich falsch mache, was ich vergessen habe?
Code: Alles auswählen
BinaryReader br = new BinaryReader(File.Open("C:\\testdatei", FileMode.Open));
string key = new string(br.ReadChars(4)); // alles ok hier
int key_length = br.ReadInt32(); // gibt 1073741824 anstatt 64 zurück
string value = Encoding.BigEndianUnicode.GetString(br.ReadChars(64)); // müsste key_length sein, 64 ist auf jedenfall richtig