Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi von einem Record eine prüfsumme erstellen (https://www.delphipraxis.net/109840-von-einem-record-eine-pruefsumme-erstellen.html)

Jackie1983 8. Mär 2008 20:05


von einem Record eine prüfsumme erstellen
 
hi

hat jemand eine idee wie ich von einem record
z.b.
Delphi-Quellcode:
  TMyHeader = packed record
    fKey    : string[50];
    fTime   : double;
    fTyp    : integer;
  end;
eine prüfsumme erstellen kann. Vielleicht mit XOR.
Kann mir da einer vielleicht helfen.....

jfheins 8. Mär 2008 20:13

Re: von einem Record eine prüfsumme erstellen
 
Wenn du keine allzu hohen Anspruche stellst, könnte das so gehen:
Delphi-Quellcode:
var
p: Pointer; // oder Pointer auf Byte
i: Integer;
begin
  p := @MyHeader;
  for i := 0 to 72 do
  begin
    i := i xor p;
    p:= p + 1;
  end;
So ungefähr - nicht getestet, dirkert im Browser geschrieben ;)

Apollonius 8. Mär 2008 20:15

Re: von einem Record eine prüfsumme erstellen
 
Eher so:
Delphi-Quellcode:
var
p: PByte;
i: Integer;
CheckSum: Byte;
begin
  p := @MyHeader;
  CheckSum := 0;
  for i := 1 to SizeOf(MyHeader) do
  begin
    CheckSum := CheckSum xor p^;
    Inc(p);
  end;

bitsetter 8. Mär 2008 20:27

Re: von einem Record eine prüfsumme erstellen
 
i kann man innerhalb der Schleife keinen Wert zuweisen

Zitat:

Zitat von Apollonius
Eher so:
Delphi-Quellcode:
    i := i xor p^;

ist bestimmt nicht richtig

Zitat:

Zitat von Apollonius
Delphi-Quellcode:
  i := 0;

kannst du dir sparen.

Apollonius 8. Mär 2008 20:30

Re: von einem Record eine prüfsumme erstellen
 
Was haben wir denn da gebaut? :oops: Ich sollte wirklich nicht ganz so gedankenlos abschreiben.

Jackie1983 8. Mär 2008 20:40

Re: von einem Record eine prüfsumme erstellen
 
thx


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz