Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Hilfe bei "records"


new-bee - Do 04.05.06 11:53
Titel: Hilfe bei "records"
Hi

ich muss für meinen Info GK ein Referat über "records" halten.

Nur weiß ich noch gar nichts darüber, habe ja auch erst seit 2 Monaten mit Delphi zu tun!

Könnte mir jemand erklären was das is un wofür man das braucht?


Danke schonmal
New-Bee


mkinzler - Do 04.05.06 12:02

Man verwendet Records, wenn man verschiedene daten zusammenfassen will. Im Unterschied zu Arrays, können die einzelnen Werte verschiedene Typen haben.

z.B.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type 
  TPerson = Record
    Name, Vorname: string;
    GebDat: TDateTime;
    ...
  end;

var
  Heinz: TPerson;
...
begin
  Heinz.Vorname := 'Heinz';


new-bee - Di 09.05.06 12:31

ah ok das is ja schon mal ne nette Hilfe...

Aber so ganz verstanden habe ich das nicht!

Könnte das jemand nochmal näher erkären was zusammenfassen usw.?


mkinzler - Di 09.05.06 12:37

http://de.wikipedia.org/wiki/Verbund_%28Datentyp%29 [http://de.wikipedia.org/wiki/Verbund_%28Datentyp%29]


aim65 - Di 09.05.06 16:39

Oder guckst Du hier: http://www.delphibasics.co.uk/Article.asp?Name=Records
Ist allerdings in englisch.

Edit: oder das (deutsch):http://dsdt.info/grundlagen/sprache/komdatentypen.php


Marco D. - Di 09.05.06 16:43

Für ein Quiz könntest du zur Verwaltung der Fragen ein Record verwenden:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type
  TFrage=record
    frage:string;
    antwort1:string;
    antwort2:string;
    antwort3:string;
    antwort4:string;
    richtig:integer;
  end;

var Fragen : array[1..100of TFrage;

//So kannst du nun z.B. auf Frage1 zugreifen:
Frage[1].frage:='Blubb?';


delfiphan - Mi 10.05.06 23:11

Eine etwas kompliziertere Record-Definition (ohne tieferen Sinn ;)). Für Delphi 2006.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type
 MyRecord = packed record
 strict private
   FMode: Integer;
   function get(Index: Integer): Integer;
   procedure put(Index: Integer; const Value: Integer);
 public
   property Mode: Integer read FMode write FMode;
   property Arr[Index: Integer]: Integer read get write put; default;
   class function HiWorld: MyRecord; static;
   type MyType = (a,b);
   case MyType of
     a: (I: ^MyRecord);
     b: (FHello: set of MySet)
 end;


new-bee - Di 06.06.06 11:59

Sorry aber ich nochma....Ihr habt mit das hier bestimmt ganz toll erklärt, nur habe ich noch net so richtig verstanden, wofür ich dasjetzt brauchen kann, oder was ich damit machen kann!



New-Bee


jasocul - Di 06.06.06 12:04

Auf meiner Website findest du unter Tutorials etwas über typisierte Dateien. Die arbeiten mit Records. Source gibt es auch dazu. Damit hättet du schonmal eine praktische Anwendung.

Stichwörter, die mir noch dazu einfallen:
- packed Record
- varianter Record