Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wieviel mal OR/AND ? (https://www.delphipraxis.net/80029-wieviel-mal.html)

Privateer3000 1. Nov 2006 22:58


Wieviel mal OR/AND ?
 
Hi folks,

wenn man mit:
Delphi-Quellcode:
if (gettake1 = ziffer)OR(gettake2 = ziffer)OR(gettake3 = ziffer)
herausfinden kan ob eine der Zustände zutrifft,
wie kann man einen Rückgabewert bekommen wie oft der Zustand zutraf?

Greetings
Privateer

3_of_8 1. Nov 2006 23:03

Re: Wieviel mal OR/AND ?
 
So? Gar nicht. Du musst das ganze mit einzelnen ifs machen.

BillieJoe90 1. Nov 2006 23:06

Re: Wieviel mal OR/AND ?
 
Mir fällt nur das ein:

Delphi-Quellcode:
procedure Irgendwas;
var i:Integer;
begin
  i := 0;
  if (gettake1 = ziffer) OR (gettake2 = ziffer) OR (gettake3 = ziffer) then begin
    if (gettake1 = ziffer) then
      i := i + 1;
    if (gettake2 = ziffer) then
      i := i + 1;
    if (gettake3 = ziffer) then
      i := i + 1;

    showMessage(IntToStr(i) + 'x aufgetreten');

    // Weiter in der Prozedur...
  end;
end;

Hawkeye219 1. Nov 2006 23:17

Re: Wieviel mal OR/AND ?
 
Vielleicht so?

Delphi-Quellcode:
Count := Ord(gettake1 = ziffer) + Ord(gettake2 = ziffer) + Ord(gettake3 = ziffer);
Gruß Hawkeye

Privateer3000 1. Nov 2006 23:20

Re: Wieviel mal OR/AND ?
 
Danke Leute
für Eure Hilfe!

Gruß

mr47 1. Nov 2006 23:21

Re: Wieviel mal OR/AND ?
 
Zitat:

Zitat von Hawkeye219
Vielleicht so?

Delphi-Quellcode:
Count := Ord(gettake1 = ziffer) + Ord(gettake2 = ziffer) + Ord(gettake3 = ziffer);
Gruß Hawkeye

Nicht nur vielleicht. True hat den Wert 1, False den Wert 0.

3_of_8 1. Nov 2006 23:36

Re: Wieviel mal OR/AND ?
 
Darauf würd ich mich jetzt nicht soo verlassen, Wenn man True als LongBool interpretiert, hat es zum Beispiel den Wert -1.

Muetze1 1. Nov 2006 23:41

Re: Wieviel mal OR/AND ?
 
Zitat:

Zitat von 3_of_8
Darauf würd ich mich jetzt nicht soo verlassen, Wenn man True als LongBool interpretiert, hat es zum Beispiel den Wert -1.

Da sorgt dann aber Ord() für ein definiertes Ergebnis von 0 und 1.

3_of_8 1. Nov 2006 23:54

Re: Wieviel mal OR/AND ?
 
Ord(LongBool(True))=-1

Privateer3000 2. Nov 2006 11:20

Re: Wieviel mal OR/AND ?
 
Für meinen speziellen Fall,
ist Ord genau das richtige.
Danke Leute es geht so, wie ich es möchte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz