Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Bit-Schiebereien

  Alt 9. Mai 2014, 13:31
OK, trotzdem Rekord Index durch Compiler ist immer noch schneller als ne Property
Dann nagelst Du die "richtige" Struktur darunter und Du bist fein raus. Immer noch besser als aus 60Bytes einen String mit Nullen und Einsen zu machen, und dann womöglich noch die Indexierung durcheinander zu werfen.

@Kostas
Der Trick bei dem varianten Record ist, daß unter verschiedenen Namen, die gleichen Daten erreichbar sind. (OK ist nicht die reine Lehre)

Delphi-Quellcode:
TDataType = record
     case integer of
       0: (rawData: Array[0..59] of Byte);
       1: (data1 : Array[0..29] of Word;
       3: record Tuep:byte; Lang:byte; Wert1:longint;wert2:byte.....;
       4: record Tip :byte; Long:byte; filler1:byte; wert11:word end;
              )
end;
var
  meinwert:TDataType;
Du kannst jetzt über meinwert.rawData[0] meinwert.Tuep und meinwert.Tip auf das erste Byte zugreifen, und es ist immer der selbe Wert.
Mit der Variante 4 hast Du Zugriff auf RawData[3] und RawData[4], Du mußt nur auf die ByteOrder aufpassen. (Ich kann's mir nicht merken)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat