AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Checksumme einer Klasse erzeugen?

Ein Thema von delphinub23 · begonnen am 15. Aug 2011 · letzter Beitrag vom 16. Aug 2011
Antwort Antwort
delphinub23

Registriert seit: 27. Okt 2010
Ort: Chemnitz
110 Beiträge
 
Delphi XE3 Professional
 
#1

Checksumme einer Klasse erzeugen?

  Alt 15. Aug 2011, 09:59
Hallo DPler,

ist es möglich eine Checksumme einer Klasse zu erzeugen?
Wenn ich z.B. eine Klasse hätte die Informationen (z.B.: Strings) hält, könnte ich mir von dieser Klasse eine Checksumme erstellen um irgendwann später auf Veränderungen der Information reagieren zu können?

MfG,
dnub
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Checksumme einer Klasse erzeugen?

  Alt 15. Aug 2011, 10:13
Na ja, natürlich kannst Du Dir eine Funktion schreiben, die mit Deinen Propertys irgend etwas durchführt, um eine Checksumme o.ä. zu erhalten. Diese kannst Du in einem privaten Feld speichern und später mit einer erneuten Berechnung vergleichen.

Die besser Lösung wird aber sein, ein den Settern der Proertys direkt auf Änderungen zu reagieren bzw. dort ein Änderungsflag zu setzen, das Du später auswerten kannst.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Checksumme einer Klasse erzeugen?

  Alt 15. Aug 2011, 10:18
Ich sehe das genauso wie stahli. Die Frage, die sich mir stellt, ist: wer ändert denn wann die Daten? Brauchst Du einen Vorgabewert, mit dem Du ggf. vergleichen kannst, wenn die Daten z.B. aus einer Datei ausgelesen werden sollen? Erklär doch einmal genauer, was der Zweck der Übung sein soll, dann kann man bestimmt mehr dazu sagen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphinub23

Registriert seit: 27. Okt 2010
Ort: Chemnitz
110 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Checksumme einer Klasse erzeugen?

  Alt 15. Aug 2011, 10:41
Danke erstmal für die schnellen Antworten.

Der Nutzer gibt Daten in einer Art Wizard ein. Diese Information werden in eine Klasse mit entsprechenden properties geschrieben.
Die Klasse wird ein Versionsfeld besitzen. Dieses Versionsfeld soll hochgezählt werden, wenn der Anwender diese Daten ändert.

Diese Problematik würde ich gern mit einer Checksumme der Klasse lösen.

MfG,
dnub
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Checksumme einer Klasse erzeugen?

  Alt 15. Aug 2011, 19:27
Hier kommt eine Beispielklasse, die zeigt wie man mit wenig Aufwand
alle Properties überprüfen kann.

Delphi-Quellcode:
interface

type
TMeinWizzard = class(TObject)
  private
    FModifyCount : Integer; // Anzahl geänderter Properties
    FStringProp: string;
    FIntProp: Integer;

    // Hilfsfunktionen, für das interne Zuweisen von Properties
    procedure CheckInteger(var p:Integer; value:Integer);
    procedure CheckString(var p:string; const value:string);

    procedure SetStringProp(const Value: string);
    procedure SetIntProp(const Value: Integer);
public
  // zwei beispielhafte Properties
  property StringProp:string read FStringProp write SetStringProp;
  property IntProp:Integer read FIntProp write SetIntProp;

  // Anzahl der Änderungen
  property ModifyCount:Integer read FModifyCount write FModifyCount;
end;

implementation

{ TMeinWizzard }

procedure TMeinWizzard.CheckInteger(var p: Integer; value: Integer);
begin
   if p <> value then
   begin
      p := value;
      Inc(FModifyCount);
   end;
end;

procedure TMeinWizzard.CheckString(var p: string; const value: string);
begin
   if p <> value then
   begin
      p := value;
      Inc(FModifyCount);
   end;
end;

procedure TMeinWizzard.SetIntProp(const Value: Integer);
begin
   CheckInteger(FIntProp, Value);
end;

procedure TMeinWizzard.SetStringProp(const Value: string);
begin
   Checkstring(FStringProp, Value);
end;
Andreas
  Mit Zitat antworten Zitat
delphinub23

Registriert seit: 27. Okt 2010
Ort: Chemnitz
110 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Checksumme einer Klasse erzeugen?

  Alt 16. Aug 2011, 20:00
Danke für dieses Beispiel.

Ich hatte dieselbe Idee, nur gefiel sie mir nicht so sehr. Da ich aber bisher keine besser Lösung finden konnte, werde ich diese wohl implementieren müssen.

Wenn sonst noch jemand eine Idee hat, nicht zögern und zur Fragerunde beitragen

MfG,
dnub
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 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