Autor Beitrag
wazup
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 101

Windows XP
Delphi 2009
BeitragVerfasst: Fr 14.11.08 21:26 
Hallo...

Ich habe vorhin einen Post gelesen worin ein code stand mit einem Case in einem Record, bin aber irgentwie nicht drauf gekommen für was das gut sein könnte...

Kann mir das jemand erklären?

Danke im vorraus...

cu, wazap^
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Fr 14.11.08 21:37 
Den würde ich gern mal sehen. Könntest du den entsprechenden Abschnitt posten?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 14.11.08 21:37 
Damit kannst du auf verschiedene Weise auf die selben Daten zugreifen ;-).
// EDIT:
Das nennt sich variante Records:
www.delphi-treff.de/...komplexe-datentypen/
wazup Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 101

Windows XP
Delphi 2009
BeitragVerfasst: Fr 14.11.08 21:44 
Danke schon mal!

user profile iconChryzler hat folgendes geschrieben Zum zitierten Posting springen:
Den würde ich gern mal sehen. Könntest du den entsprechenden Abschnitt posten?


user profile iconDevilFish hat folgendes geschrieben Zum zitierten Posting springen:
Also meine Millionenschleife sieht ungefähr so aus, und nach ein par Tests habe ich gemerkt das die Additionen mit inc ziemlich bremsen. Gut aber wies aussieht kann man da wohl nichts machen. Auf jeden Fall danke für die vielen Antworten.
Die Schleife dient übrigens zur verschlüsselung von Daten mittels BlowFish.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Type

  T4Bytes = packed record case Integer of
    0: (Byte: array[1..4of Byte);
    1: (Total: Cardinal);
  end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 14.11.08 22:04 
ja, und in diesem Fall kannst du dann entweder auf den Cardinalwert (4 Byte groß) oder die einzelnen Bytes zugreifen. Beides ist der selbe Speicher.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  x: T4Bytes;
begin
  x.Total := 1150;
  ShowMessage(IntToStr(x.Byte[1]));
Herauskommen sollte dort 1150-1024 = 126, denn die 1024 stehen ja im zweiten Byte, in dem dann 100 (binär), also 4 stehen sollten.
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Sa 15.11.08 02:20 
Hallo ...,
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Damit kannst du auf verschiedene Weise auf die selben Daten zugreifen ;-).
// EDIT:
Das nennt sich variante Records:
www.delphi-treff.de/...komplexe-datentypen/

ich hatte vor 'Ur'zeiten mal folgenden Code für ne eigene Datenbank verwendet
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
  TIdx_Data = (Header, Calender);

  TIndexRec = Record
    case Daten: TIdx_Data of
     Header:  (HFlag : Boolean;    // negativ wenn DB nicht ordnungsgemäß geschlossen wurde
               HVer  : String[5]; // Version
               HBID  : Cardinal;   // Benutzernr. = Empfängernr
               HCrypt: String[25]);   // Datenbankschlüssel

     Calender:(DTag: TDate;       
               DVfy: Boolean;     
               DFt : Byte;       

               DInx: Byte;        
               DBeg: TTime;       
               DEnd: TTime;       

               L_Azv: Word;       
               L_TPl: Word;       
               L_Hbv: Word); 
  end;

Vorteil war, das ich im Header Benutzerspezifische Daten ablegen konnte!

LG Mario