Hallo Leute,
habe da ein kleines Denkproblem, also rein Algorithmus bezogen ..
meine kleines Programm erstellt ein HexDump eines Strings oder einer Datei.
Jede Zeile wird umgewandelt (Zeilenlänge 16) danach kommt ein Leerzeichen und der Klartext (Zeilenlänge 16).
Sollte jetzt die die Datei (data.length % 16 !=0) sein, rückt es den Klartext direkt ein.
hätte gern, dass der Klartext als Block am Ende steht.
vielleicht kann jemand meine Denkblockade lösen (bevorzuge Denkanstöße und weniger vorformulierten Code), wäre echt super.
Grüße
P.S.: hoffe ich habe alles regelkonform gepostet
P.S.S.: teile auch den kompletten Code, falls nötig
habe da ein kleines Denkproblem, also rein Algorithmus bezogen ..
meine kleines Programm erstellt ein HexDump eines Strings oder einer Datei.
Jede Zeile wird umgewandelt (Zeilenlänge 16) danach kommt ein Leerzeichen und der Klartext (Zeilenlänge 16).
Sollte jetzt die die Datei (data.length % 16 !=0) sein, rückt es den Klartext direkt ein.
Code:
0000 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 20 61 73 20 Hello.World..as.
0010 68 65 78 44 75 6D 70 0D 0A 48 65 6C 6C 6F 20 57 hexDump..Hello.W
0020 6F 72 6C 64 21 orld.
hätte gern, dass der Klartext als Block am Ende steht.
Java:
public String getHexString()
{
String s= new String();
int i, j, k;
int buf = 0;
if((data.length % 16) != 0)
{
buf = 16 - (data.length % 16);
}; //zu ergänzende Zeichen in der letzten Zeile
for(i = 0; i < data.length; i+=16)
{
s+= new String(hexByte(i, 4))+" ";
for(j = 0; i+j < data.length && j < 16; j++)
{
s+= new String(hexByte(data[i+j], 2))+" ";
}
for(k = 0; i+k < data.length && k < 16; k++)
{
if(data[i+k] < 65 || data[i+k] > 128) { data[i+k] = '.'; }
s+= (char)(data[i+k]);
}
s+= new String("\n");
}
return s;
}
vielleicht kann jemand meine Denkblockade lösen (bevorzuge Denkanstöße und weniger vorformulierten Code), wäre echt super.
Grüße
P.S.: hoffe ich habe alles regelkonform gepostet
P.S.S.: teile auch den kompletten Code, falls nötig