Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 

Re: CRC32 für einzelne Wörter!

  Alt 22. Jan 2009, 11:48
Wenn du nur eine Funktion möchtest, dann mußt du dir allerdings selber was basteln,
da ich meine CRC32-Frunktionen ohne feste HashTabelle erstellt hab und diese muß erst initialisert werden.

Nicht wundern, Aufgrund des internen Aufbaus ist wirklich kein freigeben (.Free) nötig.
Und abgesehn vom CRC32 wird auch kein (.InitT aka .Create) benötigt.
Delphi-Quellcode:
Function MyCRC32(Datastring: String): String;
  Var CRC32: ThxCRC32;

  Begin
    CRC32.InitT;
    Result := CRC32.Calc(S).asHexString;
  End

aString := aString + MyCRC32(aString);
oder so
Delphi-Quellcode:
Function MyCRC32(Datastring: String; Polynom: LongWord = $EDB88320): String;
  Var CRC32: ThxCRC32;

  Begin
    CRC32.InitT(Polynom);
    Result := CRC32.Calc(S).asHexString;
  End

aString := aString + MyCRC32(aString, $12345678);
aber am Effektivsten sähe es dann so aus:
(nicht jedesmal die HashTabelle neu berechnen)
Delphi-Quellcode:
Var CRC32: ThxCRC32;

CRC32.InitT;

aString := aString + CRC32.Calc(aString).asHexString;
aString := aString + CRC32.Calc(aString).asHexString;
aString := aString + CRC32.Calc(aString).asHexString;

hab das Ganze auch gleich mal an Delphi 2009 angepaßt
und hoff es haben sich keine Fehler beim Umbau eingeschlichen.
Angehängte Dateien
Dateityp: dpr project1_210.dpr (951 Bytes, 15x aufgerufen)
Dateityp: pas fhash_single_167.pas (126,3 KB, 33x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat