Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hex-Datei einlesen, einzlne Werte werden "verschluckt&q
Aus einer Hex-Codierten File "wrestler.dat" lese ich aus und will dann mit dem HexCode arbeiten. Das funktioniert an sich ganz gut, nur dass teilweise die 0-Stellen weggelassen werden. Wenn z.B. das 2-er-Paar 01 da ist, gibt er nur "1" an den Hexkomplett-String weiter. Das führt bei späteren Operationen zu Fehlern. Gibt es da einen Parameter oder eine Funktion, so dass wirklich der komplette Inhalt weitergegeben wird?
Danke!
ich habe nun eine Datei mit einer ".length()" von 444843 auszulesen.
Mein Rechner braucht ziemlich lange bzw. er scheint dann gar nix mehr zu machen.
Dauert es einfach nur ewig? Gibt es einen besseren Weg das zu lösen?
Code:
try {
// Einlesen der Datei um die benötigte Größe des Feldes zu bestimmen
RandomAccessFile Wrestler=new RandomAccessFile("D:\\Games\\ewrevenge42\\s1\\wrestler.dat","r");
// Feld der Größe der Datei wird angelegt (bei Ausgabe 444843)
byte b[] = new byte[(int)Wrestler.length()];
Wrestler.read(b);
String Hexkomplett = "";
// in der Vorschleife wird nach HEX gewandelt... an dieser Stelle bleibt er hängen oder braucht lange
for (int i=0; i<(int)Wrestler.length();i++){
String hexWert=Integer.toHexString(b[i]);
Hexkomplett=Hexkomplett+ (hexWert.length() == 1 ? "0" : "") + hexWert + " ";
}
Performance ist jetzt gut,
aber ein anderer Bug trifft auf.
Statt wie in der Datei:
34 80 00 53 69 6d 6f 6e 20 44 69 61 6d 6f 6e 64
Erscheint in der zuständigen Variable:
34 ffffff80 00 53 69 6d 6f 6e 20 44 69 61 6d 6f 6e 64
Also seltsame ffffffs in dem Byte und das passiert genau ab der Stelle.
Zur Erklärung:
Ich suche immer nach "34", da nach dieser jeweils ein Name in der Hex-Datei kommt.
34 80 00 53 69 6d 6f 6e 20 44 69 61 6d 6f 6e 64 steht also für einen Namen.
Aber ab einer bestimmten Stelle, so ca. der 30 Name oder so, sind auf einmal diese ffffff´s da.
Kann mir das jemand erklären?
zu löschen, aber bei einem bestimmten Namen kommt direkt nach der 34 das FF, da die Zahl nach der 34 immer hochgezählt wird.
Das kann also keine Dauerlösung sein.