AGB  ·  Datenschutz  ·  Impressum  







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

and / or

Ein Thema von chicky · begonnen am 13. Aug 2009 · letzter Beitrag vom 13. Aug 2009
Antwort Antwort
chicky

Registriert seit: 11. Aug 2009
40 Beiträge
 
#1

and / or

  Alt 13. Aug 2009, 11:18
Ich hab nur eine kleine Frage.
Ich möchte sowas machen wie:
Delphi-Quellcode:
if ((A=1) and (B=1) and (C=1)) or ((A=2) and (B=3) and (C=4)) then
//..tue irgendwas..
Funktioniert das so mit der KLammersetzung oder wie interpretiert Delphi das hier?
  Mit Zitat antworten Zitat
Miolin

Registriert seit: 27. Okt 2008
Ort: Altena
60 Beiträge
 
Delphi 2009 Enterprise
 
#2

Re: and / or

  Alt 13. Aug 2009, 11:20
Das müsste eigentlich funktionieren...
Ich setze immer noch Klammern um den gesamten, zu prüfenden Ausdruck

Delphi-Quellcode:
if (((A=1) and (B=1) and (C=1)) or ((A=2) and (B=3) and (C=4))) then
//..tue irgendwas..
MfG

Oliver
Jan-Oliver Ohloff
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: and / or

  Alt 13. Aug 2009, 11:20
Die Klammern werden von innen nach außen aufgelöst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: and / or

  Alt 13. Aug 2009, 11:21
ob das so funktioniert wie du das denkst, weis ich nicht aber delphi prüft in dem Fall

if Bedingung1 or Bedingung2 then
...

// Wobei gilt:
Bedingung1 := (A=1) and (B=1) and (C=1);
Bedingung2 := (A=2) and (B=3) and (C=4);
Ansgar
  Mit Zitat antworten Zitat
chicky

Registriert seit: 11. Aug 2009
40 Beiträge
 
#5

Re: and / or

  Alt 13. Aug 2009, 11:22
Genau das will ich auch. Super danke, das wars schon
  Mit Zitat antworten Zitat
chicky

Registriert seit: 11. Aug 2009
40 Beiträge
 
#6

Re: and / or

  Alt 13. Aug 2009, 11:41
Stop. Da gibts noch ein Problem :
if ((YearOf(LetztesDatum)) <> (YearOf(NeuesDatum)) and (MonthOf(LetztesDatum) <> 12)) then .. Vor then meckert er:

Zitat:
Operator ist auf diesen OPerandenTyp nicht anwendbar !
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: and / or

  Alt 13. Aug 2009, 11:43
Jetzt hast du zuviele Klammern gesetzt. Die Klammern in ) <> ( sind zu viel.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
chicky

Registriert seit: 11. Aug 2009
40 Beiträge
 
#8

Re: and / or

  Alt 13. Aug 2009, 12:10
Manchmal sieht man den Wald vor lauter KLammern nicht
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

Re: and / or

  Alt 13. Aug 2009, 17:34
Genau deshalb habe ich mir bei solchen Ketten angewöhnt das wie begin/end zu behandeln:
Delphi-Quellcode:
function TExemplareVST.IstGefunden(const AData: TZeile): Boolean;
var
  PufferZeile : TExemplarZeile;
begin
  PufferZeile := AData as TExemplarZeile;
  Result := ((FSuchText = '') or
             ((Assigned(PufferZeile.Buch)) and (estoBuchtitel in FSuchTextOptionen) and (Pos(LowerCase(FSuchText), LowerCase(PufferZeile.Buch.Titel)) >= 1)) or
             ((estoBeschreibung in FSuchTextOptionen) and (Pos(LowerCase(FSuchText), LowerCase(PufferZeile.Bezeichnung)) >= 1))
            ) and
            ((FSuchBuchIDs.Count = 0) or ((Assigned(PufferZeile.Buch)) and (FSuchBuchIDs.IndexOf(PufferZeile.Buch.ID) >= 0))) and
            ((FSuchPersonenIDs.Count = 0) or ((Assigned(PufferZeile.Ausgeliehen)) and (FSuchPersonenIDs.IndexOf(PufferZeile.Ausgeliehen.ID) >= 0))) and
            (
             (FSuchAusgeliehenTyp = [esatNurAusgeliehene, esatKeineAusgeliehene]) or
             (
              ([esatNurAusgeliehene] = FSuchAusgeliehenTyp) and (Assigned(PufferZeile.Ausgeliehen))
             ) or
             (
              ([esatKeineAusgeliehene] = FSuchAusgeliehenTyp) and (not Assigned(PufferZeile.Ausgeliehen))
             )
            );
end;
Wobei das nicht 100% konsequent ist, aber die Ausdrücke in den Zeilen 7, 8, 10 und 11 gehören "zusammen"

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:56 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