Ich versuche in meinem Projekt eine Binärdatei zu lesen, die von einem Java Programm(Minecraft) geschrieben wurde.
Das Dateiformat ist NBT. http://wiki.vg/NBT#Specification
Es funktioniert alles auch Prima bis auf die Long Tags.
Auf der besagten Wikiseite steht, ein LongTag sei ein signed BigEndian 64-Bit Integer
Meine Ladeprozedur:
Code: Alles auswählen
var
val_long: Int64;
begin
aStream.Read(val_long, SizeOf(val_long));
val_Long := SwapEndian(val_Long);
In der Angehängten Beispieldatei sind ganz am Ende 2 Long Tags:
Der Wert von SizeOnDisk wird korrekt angezeigt, während der von RandomSeed falsch ist. Der Binäre Zahlenwert folgt direkt auf den Namen
( https://irath96.github.io/webNBT/ ist ein Online NBT viewer/editor der Bei SizeOnDisk den selben und bei RandomSeed einen anderen Wert anzeigt)
Kann mir irgendwer sagen warum sich das Programm bei großen Zahlen anders verhält als bei kleinen?
MFG
Komoluna