السلام عليكم ورحمة الله
اريد تعديل السورد كود لحساب قيمة شيك سوم Checksum
حساب Checksumالمجموع لاختباري 2 بايت
اضن ان الخطاء في كود لاستغلال
هذه بعض القيم لتوضيح كيف تحسب الدالة او الخورزمية للتوضيح 2 بايت علا يسيار بلون احمر Checksum
ولون اسود بايت
4ED8FFFFFFFF
4F4C00000000
8E8C00000001
CE8D00000002
0F4D00000003
4E8F00000004
8F4F00000005
CF4E00000006
0E8E00000007
4E8A00000008
8F4A00000009
CF4B0000000A
0E8B0000000B
4F490000000C
8E890000000D
CE880000000E
0F480000000
4E8000000010
8F4000000011
4A1635E01A00
القيمة الملونة باللون لاحمر هي مجموع Checksumلي 4 بايت 35E01A00
ممكن اي احد من لاعضاء او الفريق المطور له روح في حسابات يعدل لنا المثال وبرك الله فيه
اريد تعديل السورد كود لحساب قيمة شيك سوم Checksum
حساب Checksumالمجموع لاختباري 2 بايت
كود :
const Table: Array[0..255] of Word =
($0000,$C0C1,$C181,$0140,$C301,$03C0,$0280,$C241,$C601,$06C0,$0780,
$C741,$0500,$C5C1,$C481,$0440,$CC01,$0CC0,$0D80,$CD41,$0F00,$CFC1,
$CE81,$0E40,$0A00,$CAC1,$CB81,$0B40,$C901,$09C0,$0880,$C841,$D801,
$18C0,$1980,$D941,$1B00,$DBC1,$DA81,$1A40,$1E00,$DEC1,$DF81,$1F40,
$DD01,$1DC0,$1C80,$DC41,$1400,$D4C1,$D581,$1540,$D701,$17C0,$1680,
$D641,$D201,$12C0,$1380,$D341,$1100,$D1C1,$D081,$1040,$F001,$30C0,
$3180,$F141,$3300,$F3C1,$F281,$3240,$3600,$F6C1,$F781,$3740,$F501,
$35C0,$3480,$F441,$3C00,$FCC1,$FD81,$3D40,$FF01,$3FC0,$3E80,$FE41,
$FA01,$3AC0,$3B80,$FB41,$3900,$F9C1,$F881,$3840,$2800,$E8C1,$E981,
$2940,$EB01,$2BC0,$2A80,$EA41,$EE01,$2EC0,$2F80,$EF41,$2D00,$EDC1,
$EC81,$2C40,$E401,$24C0,$2580,$E541,$2700,$E7C1,$E681,$2640,$2200,
$E2C1,$E381,$2340,$E101,$21C0,$2080,$E041,$A001,$60C0,$6180,$A141,
$6300,$A3C1,$A281,$6240,$6600,$A6C1,$A781,$6740,$A501,$65C0,$6480,
$A441,$6C00,$ACC1,$AD81,$6D40,$AF01,$6FC0,$6E80,$AE41,$AA01,$6AC0,
$6B80,$AB41,$6900,$A9C1,$A881,$6840,$7800,$B8C1,$B981,$7940,$BB01,
$7BC0,$7A80,$BA41,$BE01,$7EC0,$7F80,$BF41,$7D00,$BDC1,$BC81,$7C40,
$B401,$74C0,$7580,$B541,$7700,$B7C1,$B681,$7640,$7200,$B2C1,$B381,
$7340,$B101,$71C0,$7080,$B041,$5000,$90C1,$9181,$5140,$9301,$53C0,
$5280,$9241,$9601,$56C0,$5780,$9741,$5500,$95C1,$9481,$5440,$9C01,
$5CC0,$5D80,$9D41,$5F00,$9FC1,$9E81,$5E40,$5A00,$9AC1,$9B81,$5B40,
$9901,$59C0,$5880,$9841,$8801,$48C0,$4980,$8941,$4B00,$8BC1,$8A81,
$4A40,$4E00,$8EC1,$8F81,$4F40,$8D01,$4DC0,$4C80,$8C41,$4400,$84C1,
$8581,$4540,$8701,$47C0,$4680,$8641,$8201,$42C0,$4380,$8341,$4100,
$81C1,$8081,$4040);كود :
function CRC16(bytes: array of Byte): Word;
const
polynomial = $1021;
var
crc: Word;
I, J: Integer;
b: Byte;
bit, c15: Boolean;
begin
crc := $FFFF;
for I := 0 to High(bytes) do
begin
b := bytes[I];
for J := 0 to 7 do
begin
bit := (((b shr (7-J)) and 1) = 1);
c15 := (((crc shr 15) and 1) = 1);
crc := crc shl 1;
if ((c15 xor bit) <> false) then crc := crc xor polynomial;
end;
end;
Result := crc and $ffff;
end;كود :
procedure TForm1.Button1Click(Sender: TObject);
VAR
CRC: word;
begin
label1.Caption:=inttohex(Crc(HexToString(Edit1.Text), $1021, 0),4);
end;اضن ان الخطاء في كود لاستغلال
كود :
label1.Caption:=inttohex(Crc(HexToString(Edit1.Text), $1021, 0),4);هذه بعض القيم لتوضيح كيف تحسب الدالة او الخورزمية للتوضيح 2 بايت علا يسيار بلون احمر Checksum
ولون اسود بايت
4ED8FFFFFFFF
4F4C00000000
8E8C00000001
CE8D00000002
0F4D00000003
4E8F00000004
8F4F00000005
CF4E00000006
0E8E00000007
4E8A00000008
8F4A00000009
CF4B0000000A
0E8B0000000B
4F490000000C
8E890000000D
CE880000000E
0F480000000
4E8000000010
8F4000000011
4A1635E01A00
القيمة الملونة باللون لاحمر هي مجموع Checksumلي 4 بايت 35E01A00
ممكن اي احد من لاعضاء او الفريق المطور له روح في حسابات يعدل لنا المثال وبرك الله فيه

