AGB  ·  Datenschutz  ·  Impressum  







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

boolean ohne variable?

Ein Thema von Pseudemys Nelsoni · begonnen am 14. Dez 2004 · letzter Beitrag vom 20. Nov 2007
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#11

Re: boolean ohne variable?

  Alt 14. Dez 2004, 22:37
@paresy, das verstehe ich nicht, irgendwie muss doch entschieden werden welcher variante teil benutzt wird, in den beispiel, siehe ersten post, wann ist da true und wann false?

@dizzy, danke das erklärt das fehlende end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
paresy

Registriert seit: 24. Aug 2004
Ort: Lübeck
105 Beiträge
 
Delphi 2007 Professional
 
#12

Re: boolean ohne variable?

  Alt 14. Dez 2004, 22:47
benutz mal das auto completion feature von delphi... dann zeigt er dir folgende möglichkeiten an:

Header : record

//true teil
Value : DWORD;
Junk: array[0..1023] of Char;
//false teil
Str : array[0..1023] of Char;

d.h. -> du hast die wahl für welchen teil du dich entscheidest. du kannst auch beiden teilen was zuweisen, jedoch überschneiden sich die sachen dann im speicher was wahrscheinlich nicht sinn und zweck erfüllt... vllt jedoch auch mal nützlich sein kann ( hab nur grad keine idee )
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: boolean ohne variable?

  Alt 14. Dez 2004, 23:55
Angewandt wird das ganze z.B. bei Ip-Adressen: Dort gibt es die Möglichkeit, eine 32Bit-Zahl zu setzen oder aber 4 8Bit-Zahlen. Da die 4x8 Bit den gleichen Speicherbereich adressieren wie die 1x32 Bit, spielt das keine Rolle.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: boolean ohne variable?

  Alt 15. Dez 2004, 00:09
Moin Mario,

Zitat von Pseudemys Nelsoni:
irgendwie muss doch entschieden werden welcher variante teil benutzt wird
jein

Das entscheidest Du, indem Du das entsprechende Feld angibst.
Vielleicht wird es mit einem Beispiel deutlicher:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

type
  TcsMyVariant1 = record
    case boolean of
      true : (dwDWORD : DWORD);
      false : (bByte0 : Byte;
               bByte1 : Byte;
               bByte2 : Byte;
               bByte3 : Byte;)
  end;

  TcsMyVariant2 = record
    case byte of
      8 : (dwDWORD : DWORD);
      37 : (bByte0 : Byte;
            bByte1 : Byte;
            bByte2 : Byte;
            bByte3 : Byte;)
  end;

var
  mvWork1 : TcsMyVariant1;
  mvWork2 : TcsMyVariant2;

begin
  mvWork1.dwDWORD := $FFEEDDCC;

  ShowMessage(IntToHex(mvWork1.bByte3,2)+#13#10+
              IntToHex(mvWork1.bByte2,2)+#13#10+
              IntToHex(mvWork1.bByte1,2)+#13#10+
              IntToHex(mvWork1.bByte0,2));

  mvWork2.bByte0 := $CC;
  mvWork2.bByte1 := $DD;
  mvWork2.bByte2 := $EE;
  mvWork2.bByte3 := $FF;

  ShowMessage(IntToHex(mvWork2.dwDWORD,8));
end;
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 Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#15

Re: boolean ohne variable?

  Alt 15. Dez 2004, 00:39
moin christian,

danke für dein beispiel :]

was ich aber nun nicht verstehe ist "8" bzw "37" bei deinem 2ten rekord, irgendwie seh ich im code nirgends wo das eine bedeutung haette
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: boolean ohne variable?

  Alt 15. Dez 2004, 00:52
Moin Mario,

Zitat von Pseudemys Nelsoni:
irgendwie seh ich im code nirgends wo das eine bedeutung haette
das war auch Sinn und Zweck der Zahlenwahl.
Sie haben keine Bedeutung. Solange Du für jede Variante einen Wert angibst, der zum Wertebereich des Ordinaltyps im Case angibst, kannst Du Werte nehmen, wie Du gerade willst.
Unter Umständen können die Werte auch der Dokumentation dienen, z.B.

Delphi-Quellcode:
type
  TcsMyType = record
    bRecordType : Byte;
    case Byte of
      $AA : (.....); // Aufteilung, wenn bRecordType = $AA ist
      $BB : (.....); // Aufteilung, wenn bRecordType = $BB ist
      // ...
  end;
Wenn Du nur zwei Varianten unterscheiden musst reicht boolean, bis zu 256 dann Byte usw.
Grösser schadet nicht.
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 Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#17

Re: boolean ohne variable?

  Alt 15. Dez 2004, 01:23
danke christian, dann ist mir das nun klar =)
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#18

Re: boolean ohne variable?

  Alt 15. Dez 2004, 07:03
nochmal ne frage...also so:

Delphi-Quellcode:
type
  TTest = record
    Variable:Typ;
    case Typ of //bezieht sich auf die zuletzt genannte Variable des Typs 'Typ'
      Wert1: (a:Typa, b:Typb);//Fall 1
      Wert2: (x:Typx, y:Typy);//Fall 2
  end;
ist das so korrekt?
mit kommentaren, ends und allem?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#19

Re: boolean ohne variable?

  Alt 15. Dez 2004, 07:22
Ich empfehle, dieses Thema nicht zu vertiefen.

Warum ?

1. wie man sieht, führen Varianten für ziemliche Verwirrung.

2. sie bringen keinen Vorteil.

3. Aus Sicht einer Datenbank ist es völliger Unsinn, es geht nämlich auch, einen Typ anzulegen, der in Abhängigkeit eines Wertes 1 Byte oder 10000 belegt. In diesem Falle müßten dann 10000 Byte belegt werden bei jedem Datensatz.

Deshalb : Finger weg !
Gruß
Hansa
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#20

Re: boolean ohne variable?

  Alt 15. Dez 2004, 15:13
Natürlich hat es einen Vorteil. Stell dir mal einen mathematischen Vektor vor. In manchen Fällen willst du, dass die Komponenten x, y und z sind. In anderen Fällen willst du x1, x2 und x3. In anderen vielleicht dann u, v, w. So kannst du alle Varianten in einem Vektortyp unterbringen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 00:43 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