AGB  ·  Datenschutz  ·  Impressum  







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

Record: Delphi only?

Ein Thema von gsh · begonnen am 22. Jun 2006 · letzter Beitrag vom 7. Jul 2006
Antwort Antwort
Seite 3 von 4     123 4      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Record: Delphi only?

  Alt 23. Jun 2006, 12:47
Moin Zusammen,

also, solange es keinen zwingenden Grund gibt die Daten zu packen, sollten sie ungepackt bleiben.
Wird so ein Record allerdings benutzt, um, z.B., Daten aus einer Datei einzulesen, wird man um das Packen wohl nicht herumkommen (obwohl ich auch schon Dateien mit Füllbytes gesehen habe )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Record: Delphi only?

  Alt 23. Jun 2006, 12:53
@Oxmyx: OK, wuste ich och noch nicht ._.

@Hasilein: Na ja, ich definiere zwar schon 'ne ganze Weile meine Records als Packed, versehe sie aber abundzu auch selber mal mit entsprechenden FüllBytes ... so hab ich wenigstens die Ausrichtung selber im Griff und der Typ ist, egal wie ausgerichtet wird, immer i.O.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#23

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:09
hmm ich kann ja dazu sagen des man einen packed record braucht aber was ist besser?
Es sollte auch ein ziemlicher anfänger so eine DLL schreiben können ohne des er sich viel mit den Records auskennen sollte.

packed oder not packed?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:14
Na ja, wenn du nur mit Delphi auf deine Records zugreifst und überall die Standardeinstellungen läßt ( {$A... }, dann kannst du ganz einfach bei ungepackt bleiben.

Ansonsten kannst du alles packen, oder mußt halt aufpassen, daß du mit der selben ausrichtung arbeitest ... es ist also dir überlassen, was du willst/magst ^^
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#25

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:17
ja aber ich will ja nicht des es nur über Delphi ansteuerbar ist sondern auch bei "allen" anderen Programmiersprachen.

Gibt es in den sprachen c++, vb, c#, ... überrall packed und not packed?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:23
in C++ gibt es das auf jeden fall (wurde ja bereits geschrieben das es da mit "pragma" geht). Ansonsten sollte es in allen Programmiersprachen "packed" geben.

Und wenn du ohne "packed" arbeitest sollte das auch für Programmiersprachen kein Problem sein die es nicht beherrschen weil man dann dort einfach den Record anders definiert.
Sieht der Record bei dir also so aus
Delphi-Quellcode:
TMyRecord = record
  part1: Byte;//danach werden z.B. 3 Bytes aufgefülllt
  part2: Integer;
end;
könnte man das sinngemäß in anderen Programmiersprachen die so definieren
Delphi-Quellcode:
TMyRecord = packed record
  part1: Byte;
  partx: Array[0..2] of Byte;
  part2: Integer;
end;
wenn du also nicht "packed" verwendest sollte es nirgends zu problemen kommen, es muss nur anders definiert werden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:25
Also packed ist es auf jeden Fall überall
und selbst wenn es not packed nicht geben sollte, so könnte man die nötigen FüllBytes auch selber einfügen.


Wie gesagt, inzwischen mach ich es nur noch mit packed,
dann ist zwar im QuellCode mehr drin, aber es funktioniert immer und überall
Delphi-Quellcode:
x = packed Record
  B: Byte;
  _fill: Triple;
  i: Integer;
End;

Triple is'n eigener 3-Byte-Type. Es sieht halt besser aus, als
Delphi-Quellcode:
x = packed Record
  B: Byte;
  _fill: packed Array[0..2] of Byte;
  i: Integer;
End;
// oder
x = packed Record
  B: Byte;
  _fill1: Byte;
  _fill2: Word;
  i: Integer;
End;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#28

Re: Record: Delphi only?

  Alt 23. Jun 2006, 13:44
ok danke leute für die Infos

Ich glaub ich werd packed records verwenden
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#29

Re: Record: Delphi only?

  Alt 6. Jul 2006, 19:23
Hi Leute

Ich bins mal wieder.

Hab noch ne Frage. Wegen den eigenheiten von Delphi. Das eine String variable delphi eigen ist klar aber was gibt es sonst noch was andere Programmiersprachen anderes im Speicher verwalten. Also kann ich z.b. Boolean, Cardinal, ... ohne weiteres verwenden oder bei was muss ich aufpassen.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#30

Re: Record: Delphi only?

  Alt 6. Jul 2006, 21:00
Zu dem Packed:
Weniger wichtig als die tatsächliche Ausrichtung der Daten ist die Tatsache, dass die Ausrichtung bekannt ist. WEnn du z.B. weißt, dass dein Compiler immer an 64-bit-Grenzen ausrichtet, kannst du das eventuellen Benutzern deines Codes sagen und sie können die Daten danach ausrichten. In C# ist es beispielsweise im Normalfall überhaupt nicht festgelegt, wie die Daten genau ausgerichtet werden, aber man kann entweder das Packing oder das exakte Layout der Elemente spezifizieren.
Zitat:
Also kann ich z.b. Boolean, Cardinal, ... ohne weiteres verwenden oder bei was muss ich aufpassen.
Jein.
In C gibt es beispielsweise keinen bool-Typ. Und ob ein bool-Typ in C++ oder C# identisch ist oder mit dem Delphi-Typ identisch, sei dahingestellt. Bei Typen wie Cardinal solltest du dich vielleicht an den Win32-Typen orientieren, da ein typischer C- oder C++-Programmierer Cardinal überhaupt nicht kennt (würde auf Anhieb auf DWORD tippen?). Generell müssten die meisten Sprachen, die unter Windows verwendet werden, auch die Standard-Windows-API-Typen implementieren. Da gibt es auch einen BOOL-Typ, der wird glaub ich nach int übersetzt. Und irgendwie sagt mir dazu der Name LongBool etwas, das war vielleicht die Delphi-Entsprechung
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 04:37 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