Hallo,
zum Schreiben eines TDB-Files mit Version höher 300 gehört auch ein record 0x54. Dieser Record enthält auch 4 Bytes (im Code mit A,B,C,D bezeichnet ), die aus einer CRC32 Checksum abgeleitet werden. Leider konnte ich den Aufbau dieses Records selbst noch nicht herausfinden. Jetzt konnte ich den Java-code dafür im Internet finden. Leider beherrsche ich Java nicht, sondern nur VB und etwas C++.
Kann mir ein Java-Programmierer ev. mit Worten erklären, was folgender Code macht. Die für mich entscheidende Stelle ist :
. sum ist die CRC32 Cheksum des Files. Ich vermute, daß mit sum >>24 nur ein Teil dieser Summe herausgezogen wird. Aber welcher bzw. wie ? Hier der gesamte code
Code
public class TBlock {
private long sum;
public void write(Block block) throws IOException {
StructuredOutputStream os = block.getOutputStream();
// If you change A,B,C or D the maps
// will not load, you can change the rest without easily visible
// problems although I suppose they must do something.
//
// A,B,C,D is a standard crc32 sum of the rest of the file.
// (Andrzej Popowsk)
os.write2(0);
os.write((int) (sum >> 24)); // A
os.write3(0);
os.write3(0);
os.write((int) (sum >> 16)); // B
os.write2(0);
os.write((int) (sum >> 8)); // C
os.write4(0);
os.write((int) sum); // D
os.write2(0);
}
Alles anzeigen
morgen1