Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.186 Beiträge
 
Delphi 12 Athens
 
#20

AW: MD5 - Unterschiede zw. Indy und DEC6

  Alt 22. Mär 2024, 20:59
Nja, eine gute Überladung von UTF8String mit String+RawByteString lässt sich leider nicht bilden, da es bei "anderen" AnsiString-Typen keinen wirklich sicheren Pfad ergibt,
außer man würde RawByteString und String/UnicodeString nehmen und intern immer nach UTF-8 konvertieren, was aber den Leuten die Möglichkeit nehmen würde, auch andere Konvertierungen zu nutzen.



Am Einfachsten wäre wohl eine Standardfunktion, mit Typ UTF8String (ohne Überladungen), da das vermutlich der häufigste/nützlichste Fall sein dürfte und Delphi alle übergebenen Stringtypen automatisch konvertieren würde,
und daneben eine andere überladene Funktion mit RawByteString, String/UnicodeString, TBytes und Pointer+Len, für alle anderen Fälle und Daten/Strings in allen möglichen Datenformaten, welche ohne automatische Konvertierung behandelt werden.

Alternativ eben nur die letzte überladene Parameter-Variante, mit einem zusätzlichen Parameter, welcher das interne Encoding vorgibt, in was vor der Hash-Berechnung konvertiert würde, also z.B. ein Enum oder TEncoding, mit Default auf UTF-8.
Alles in Richtung TBytes und oder Pointer (RawByteString als Kopie mit SetCodePage oder einfach an String/UnicodeString übergeben, sowie den UnicodeString mit TEncoding in ein TBytes und am Ende dann daraus der Hash)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Mär 2024 um 21:05 Uhr)
  Mit Zitat antworten Zitat