C# Binär Datei auslesen [ Erledigt ]

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Andi
Beiträge: 81
Registriert: 12.03.2009, 00:19

C# Binär Datei auslesen [ Erledigt ]

Beitrag von Andi »

Hallo,

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
Zuletzt geändert von Andi am 23.07.2014, 21:46, insgesamt 1-mal geändert.
Stephan Theisgen
Beiträge: 94
Registriert: 29.07.2003, 11:13

Re: C# Binär Datei auslesen

Beitrag von Stephan Theisgen »

nur ganz schnell, da ich auf dem Sprung bin:

sieht für mich so aus, als würdest Du die Bytes in verkehrter Reihenfolge einlesen. Denn 40-00-00-00 ist 1073741824 und A9-01-00-00 dürfte als signed intepretiert auch -1459552256 sein. Verwechselst Du da vielleicht BigEndian und LittleEndian-Codierung?

Schuß ins Blaue: da steht ja auch was von "Encoding.BigEndianUnicode" vielleicht past ja "Encoding.LittleEndianUnicode". Allerdings verstehe ich den Quelltext auf die Schnelle nicht vollständig.

Viele Grüße
Stephan
Benutzeravatar
Andi
Beiträge: 81
Registriert: 12.03.2009, 00:19

Re: C# Binär Datei auslesen

Beitrag von Andi »

Hahaha ja da hätt ich eben selbst drauf kommen können, vielen dank :D

Die Binär Datei ist von einem Tool, sprich seine Datenbank, wieso die so aufgebaut ist weiss ich auch nicht
Antworten