Forum: Algorithmen, Datenstrukturen und Klassendesign
by Der schöne Günther,
7. Feb 2019
Aber der Code gilt nur für TMyRecord und man muss ihn anpassen wenn man an TMyRecord etwas ändert. Eine Methode die auf alle Records passt hat schon was für sich 😎
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Der schöne Günther,
6. Feb 2019
Kleiner Nachtrag: Hierbei wird der Fall vergessen wenn das letzte Feld im Record noch Padding hat. Nach der for-Schleife muss man noch einmal den Wert von offset mit t.TypeSize vergleichen. Die Differenz davon sind die letzten Padding-Bytes.
Mein "fillPaddingBytes" sähe dann so aus:
procedure TMyStructHelper.fillPaddingBytes(const pattern: Byte);
var
ctx: TRttiContext;
rttiType:...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Der schöne Günther,
20. Feb 2018
Super, TRttiField.Offset war mich nicht bewusst.
Jetzt muss ich mich entscheiden. Beides sieht gut aus. Hm... :?
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Der schöne Günther,
20. Feb 2018
Vielen Dank euch beiden für die Antworten erst einmal.
Ich hätte gedacht man kann etwas allgemeingültiges finden. Es hängt ja schon von der Reihenfolge der Felder ab, wie der Record deklariert ist. Compiler-Direktiven tun ihr übriges. Von Hand wollte ich da so wenig wie möglich machen.
Ich glaube mein Ziel "Beschreibe alle Padding-Bytes mit X" erreiche ich folgendermaßen:
type...