![]() |
Unterschiedliche Größe eines Records (D4 vs. D9)
Hallo zusammen,
ich habe gerade ein Delphi4 Projekt, welches mit typisierten Dateien arbeitet, nach Delphi 9 portiert. So jetzt habe ich das Problem, dass die Dateien nicht mehr sauber gelesen werden weil sich die Größe des Records verändert hat. Bei gleichem Aufbau. type TStruct = record . . . end; D4: SizeOf(TStuct) = 600 D9: SizeOf(TStuct) = 594 Hat jemand eine Ahnung woran das liegen kann??? Danke Baeuerle |
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Poste mal die komplette Definition des Records
|
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Spontan kann man d nur vermuten, daß es sich nicht um einen Packed-Record handelt und die Elemente jeweils anders ausgerichtet werden :)
|
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Es geht um TUserOptions. Musste leider ein paar Zeilen Code dafür anhängen
Delphi-Quellcode:
TCopyOptions = record
CopyDirection, Marcation : Byte; end; TCopyStrategie = record BothFldr, OnlySrcFldr, OnlyDestFldr, OnlySrcFile, OnlyDestFile, SrcIsNewer, DestIsNewer, SrcIsBigger, DestIsBigger, ChangedSinceLast : TCopyOptions; end; TColorOpt = record FileColor, FldrColor, FontColor : TColor; end; TUserOptions = record ColorOpt : TColorOpt; PorpertyGrouped:Boolean; FldrOpened : Byte; Summer : Boolean; DEF_STRAT_MAN : TcopyStrategie; DEF_STRAT_AUT : TcopyStrategie; MaxPtk: Integer; Version: Integer; NTFS: Boolean; bufferFree: Boolean; DelArchivDays: Integer; SchredderArchiv: Boolean; bBuffer_1: Boolean; bBuffer_2: Boolean; iBuffer_1: Byte; iBuffer_2: Byte; iBuffer_3: Integer; iBuffer_4: Integer; sBuffer_1: Shortstring; sBuffer_2: Shortstring; end; |
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Spontan würde ich sagen: Probier mal SizeOf(Boolean)
|
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Ist beides 1 Byte !!!
Habe es schon versucht. Erst TUserOptions hat unterschiedliche größen !! Die anderen Reords sind identisch |
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
@himitsu
richtig ich arbeitete mit Record und nicht mit Packed record. Was kann ich jetzt machen dass die Dateien unter D9 auch sauber gelesen werden können??? |
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Hi,
hat das evtl. was mit den Compiler-Einstellungen zur Recordausrichtung zu tun? aus der Delphi-Hilfe: Zitat:
|
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
BINGO :thumb:
Das sieht gut aus danke. |
Re: Unterschiedliche Größe eines Records (D4 vs. D9)
Ansonsten verwende halt zukünftig Packed-Records, wenn es unbedingt auf die Größe/Ausrichtung ankommt.
Und falls dennoch unbedingt (z.B. wegen der geschwingigkeit, oder zur Kompitabilät) eine bestimmte Ausrichtung benötigt wird, dann halt mal kein Packed und per {$A...} was passendes auswählen, oder doch per Packed und mit DummyBytes die Lücken aufstocken ^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz