Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Const Array von einem "record" (https://www.delphipraxis.net/20515-const-array-von-einem-record.html)

StTüff 19. Apr 2004 13:39


Const Array von einem "record"
 
Hallo!

Kann mir jemand sagen, warum das nicht geht:
Delphi-Quellcode:
Type
   testrec = record
      int1:    integer;
      int2:  integer;
      int3:    integer;
      str1:     string;
   end;

const
   test: array [1..5] of testrec =
   (
      (1, 0, 0, 'fdas'),
      (0, 0, 0, 'dsf'),
      (0, 0, 0, 'dsf'),
      (0, 0, 0, 'gf'),
      (0, 0, 0, 'fgf')
   );
Wie realisiert man so was am elegantesten?

Vielen Dank schon mal für Eure Hilfe!

StTüff

shmia 19. Apr 2004 13:48

Re: Const Array von einem "record"
 
Die korrekte Schreibweise geht so:
Delphi-Quellcode:
const
   test: array [1..2] of testrec =
   ( 
      (int1:1; int2:0; int3:0; str1:'fdas'),
      (int1:0; int2:0; int3:0; str1:'dsf')
   );
Es empfiehlt sich also, kurze Bezeichner innerhalb des Records zu verwenden; sonst
nutzt sich die Tastatur so ab. :stupid:

StTüff 19. Apr 2004 13:50

Re: Const Array von einem "record"
 
Hallo!

Das habe ich auch eben bemerk.
Danke für die schnelle Antwort!

StTüff

himitsu 19. Apr 2004 14:13

Re: Const Array von einem "record"
 
Da wir gerade mal dabei sind...

Ich ich nutze ja auch schon 'ne ganze Weile solche Teile und mir ist mal aufgefallen, das man auch einiges in den Records weglassen kann.

Ich weiß nur nicht, ob dann die weggelassenen Teile einen Bestimmten Standardwert bekommen, oder ob die dann auf sonstewas gesetzt werden.

also z.B. statt
Delphi-Quellcode:
const
   test: array [1..2] of testrec =
   ( 
      (int1:1; int2:0; int3:0; str1:'fdas'),
      (int1:0; int2:0; int3:0; str1:'dsf')
   );
so
Delphi-Quellcode:
const
   test: array [1..2] of testrec =
   ( 
      (int1:1; str1:'fdas'),
      (str1:'dsf')
   );
Sind die Weggelassenen dann z.B. wie globale Integervariablen auch auf 0?

Muetze1 19. Apr 2004 21:29

Re: Const Array von einem "record"
 
Moin!

Zitat:

Zitat von himitsu
Sind die Weggelassenen dann z.B. wie globale Integervariablen auch auf 0?

Ja, da const - Werte immer im Variablenbereich liegen und dieser Bereich beim Starten des Programms im EXE Header mit einem Flag versehen ist das dieser mit 0'en zu füllen ist bzw. das die Runtime das beim Start macht.

Ausgenommen davon sind lokale Variable in Proceduren/Funktionen, da diese auf dem Heap angelegt werden und somit mit zufälligen Werten der vorherigen "Benutzer des gleichen Speicherbereiches" gefüllt ist.

MfG
Muetze1

himitsu 19. Apr 2004 21:40

Re: Const Array von einem "record"
 
Also da ich sowas ja eh global mach', kann ich also davon ausgehn, das nicht engebebenen auf 0 / '' ... stehen?

Muetze1 20. Apr 2004 00:49

Re: Const Array von einem "record"
 
Moin!

Zitat:

Zitat von himitsu
Also da ich sowas ja eh global mach', kann ich also davon ausgehn, das nicht engebebenen auf 0 / '' ... stehen?

Ja, soweit schon - ja!

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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