AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu record

Ein Thema von DelTurbo · begonnen am 10. Aug 2012 · letzter Beitrag vom 10. Aug 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

AW: Frage zu record

  Alt 10. Aug 2012, 12:31
Wieso nicht?

Packed Records packen immer so, wie ich mir das denke.
= Kein Zwischenraum zwischen den einzelnen Feldern, was einem {$A-} | {$A1} | {$ALIGN 1} gleich kommt.

Ohne PACKED, bzw. mit ALIGN größer 1 muß man schon etwas nachdenken und wissen wie einige Typen intern aufgebaut sind, um die Ausrichtung zu erkennen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Frage zu record

  Alt 10. Aug 2012, 12:36
Ich würde das nicht tun!
Denn packed records packen manchmal eben nicht so, wie man sich das denkt. Irgendwann (Arrays mit ungerader Länge) wird doch auf das nächst gerade Byte ausgerichtet und -wupps- hat man den Salat.
a) Kannst Du das belegen?

b) falls ich Fremddaten lesen muß sieht das ungefähr so aus
Delphi-Quellcode:
myrecord=packed record.....end;

setlength(buffer,sizeof(myrecord));

gelesen:=fs.read(buffer,sizeof(buffer));
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#13

AW: Frage zu record

  Alt 10. Aug 2012, 12:51
Also ich habe ein altes Projekt, wo das mit dem packed und alligned nicht so war.
Dort sind Packed records in Packed records und noch diverse packed array [0..4] of string[10] usw. deklariert und man hat sich gewundert, das beim Lesen der Daten ab der Stelle schießmichtot (3 Jahre her) ein Byteshift um 1 drin var.... Umgestellt auf explizites Lesen jedes Feldes => Alles paletti.

@p80286: Belegen kann ich das nicht mehr, das Projekt wurde ja verändert und funktioniert nun.

.... Aber wenn ich mir die alte Deklaration so anschaue, wundere ich mich, das dort packed record mit packed array und (!) array kombiniert wurde. Da wundert mich nüscht mehr!

Wird wohl daran gelegen haben...

Geändert von Iwo Asnet (10. Aug 2012 um 12:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Frage zu record

  Alt 10. Aug 2012, 13:59
.... Aber wenn ich mir die alte Deklaration so anschaue, wundere ich mich, das dort packed record mit packed array und (!) array kombiniert wurde. Da wundert mich nüscht mehr!
Da bist Du nicht alleine, so etwas ist wohl jedem von uns mal passiert.

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


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz