Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Recordvariabeln vergleichen... (https://www.delphipraxis.net/92286-recordvariabeln-vergleichen.html)

Bastler 17. Mai 2007 13:11


Recordvariabeln vergleichen...
 
Hallo;

Kann ich irgendiwe gucken ob bestimmte Werte von verschieden Records gleich sind?

Folgender Beispielcode:

Delphi-Quellcode:
type TRec1 = record
     a,b,c:boolean;
     i:integer;    
     end;

type TRec2 = record
     var1,var2,var3,var4:TRec1;    
     end;

var record:TRec2;
Jetzt möchte ich schauen, ob z.b. bei record.var1,record.var2 und record.var3 "b" jeweils auf True ist?

Gibt es eine Funktion, die dies hier übernimmt?

Delphi-Quellcode:
procedure pro1;
begin
if var1.b then //...
if var2.b then //...
if var3.b then //...
end;
Damit ich die nich alle auflisten muss? bei diesem Beispiel hier gehts noch, aber mein Record hat ~50 Variablen und die sind auch nicht so systematsich benannt, wie hier mit var1 usw...

Ich suche also quasie eine art For-Schleife für Records; also sowas in der Art
Delphi-Quellcode:
//Pseudo-Code
For i:=0 to anzahl_der_elemente_im_record do
  begin
  if record.element[i].b then //...
  end;
Ich hoffe Ihr versetht, was ich meine/suche...

Danke an alle die sich mit meinem Problem auseinander setzten...

Apollonius 17. Mai 2007 13:13

Re: Recordvariabeln vergleichen...
 
Es hilft, wenn du die boolean-Elemente des Records zu einem Array zusammenfasst. Dann kann man die Werte nämlich mit einer for-Schleife und der boolschen Verknüpfung and durchgehen.

Bastler 17. Mai 2007 13:16

Re: Recordvariabeln vergleichen...
 
Naja, dann kann ich die Bools der Reihe nach durchschauen, aber doch nich die Elemente aus dem Rec2, oder habe dich dich falsch verstanden?

Apollonius 17. Mai 2007 13:38

Re: Recordvariabeln vergleichen...
 
Die Benennungen var1, var2, var3, var4 schreien doch nach einem Array! ebenso a,b,c. Dann kannst du einfach ein Verschachtelte for-Schleife benutzen.
Delphi-Quellcode:
for i:=0 to 4 do
  for j:=0 to 3 do
    begin
     if meinrecord.variable[i].boolescherWert[j] then
      //...
    end;


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