TProgger hat folgendes geschrieben: |
Warum nicht so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Z: Integer; hex: String;
ResultString := a[0]+a[1]+a[2]+a[3]... Z:=StrToInt('$'+a[3]); Z := Z + DeineZahl; if Z > 255 then Z := Z - 256;
hex:=IntToHex(Z, 2); a[3]:=hex; |
So würde ich das machen, ganz ohne Schieberei  |
hmm, im großen und ganzen speicherst du dann den Hex in ein array of string oder?
wenn ja, könnte man es auch so machen:
mein Anfangs Hex = 00011111
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Hex, Hex2: string; z: integer; begin Hex:='00011111'; z:=StrToInt('$' + Hex[5] + Hex[6]);
z := z - $17; if z > 255 then z:= z - 256; if z < 0 then z:= z + 256;
Hex2:=IntToHex(z, 2);
Hex[5]:=Hex2[1]; Hex[6]:=Hex2[2]; end; |
mein End Hex = 00010122
hmm ... verdammt, warum bin ich da nicht früher draufgekommen, also sind arrays eigentlich garnicht nötig....
Aber danke für deine rechenformal, die hat mir da sehr geholen, sonnst könnte ich das garnicht so machen ^_^
// edit
obwohl ich gerade bemerkt habe:
00 01
11 11
diese $11 - $17 ergibt -> FF FF FF FA und das auch mit deiner methode
habe das aber auch schon im obrigen code gelöst, hoffe das stimmt so.