我有定義爲Bytes
多維數組如下:校驗數組元素的
type
TRow = array[0..6] of Byte;
var
All: array[0..19112079] of TRow;
現在,我想以產生陣列由每行的唯一校驗和保存到文件中,像這樣:
var
I: Integer;
begin
for I := 0 to 19112079 do
begin
Checksum := GenerateChecksum(All[I]);
Writeln(F, Checksum);
end;
end;
GenerateChecksum()
函數該怎麼辦?我試過xor
和CRC32
,但它們並不適合這項任務,因爲它們會返回重複的值。我想爲每一行生成一個獨特的校驗和。
編輯 哦,校驗和應該這樣計算,它允許比較行。我想要取兩行不同的校驗和,並告訴它們中的一個是否大於另一個,小於另一個,或者相等。有沒有這樣的機會?在相鄰的兩行
EDIT2 實施例的數據:
Row x - 1: 120, 444, 323, 984, 1024, 76, 130
Row x: 120, 444, 323, 984, 1024, 76, 222
Row x + 1: 120, 444, 323, 984, 1024, 76, 121
. . .
Row x + n: 120, 444, 323, 984, 6333, 33, 935
謝謝。
只是爲了好奇,你用的是什麼版本的德爾福? – TLama 2012-04-23 13:27:52
德爾福XE2更新3.我用'Writeln'來說明這個過程。 :) – Pateman 2012-04-23 13:28:19
校驗和值(限制大小)從許多可能的數據中生成。它不可能是唯一的 – MajidTaheri 2012-04-23 19:59:59