Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.020 Beiträge
 
Delphi 12 Athens
 
#2

AW: Variante Records, Strings und 32 bzw. 64 Bit

  Alt 26. Nov 2013, 21:08
Bei einem ShortString steht die aktuelle Stringlänge im ersten Byte. Danach folgen die einzelnen Zeichen (AnsiChar) bis zu der maximalen Länge. P1 und str liegen auf demselben Speicherbereich. Schreibst du auf str einen String von z.B. 20 Zeichen, steht im Längenbyte von P1 ebenfalls eine 20. Die Adressen von P2..P6 decken sich wegen der jeweiligen Längenbytes nicht mit den von dir erwarteten String-Positionen. Zusätzlich schlägt noch das Record-Alignment zu, das die Startadressen der Felder auf bestimmte Bytegrenzen legt.

Kurz: was du da vorhast geht so nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat