Re: Überprüfen, ob drei Vergleiche gleich sind
Um es schön in einer Zeiler zu halten, mit dem Wissen, dass Boolean = equivalent XNOR:
Delphi-Quellcode:
not ((not ((S1 = '') xor (S2 = ''))) xor (S3 = ''))
|
Re: Überprüfen, ob drei Vergleiche gleich sind
1. Später weiß bei sowas doch keiner mehr was der Programmierer da eigentlich wollte. (Dazu müsste man das bissl schon kommentieren)
2. Seh ich das richtig, das es falsch ist? Wenn man alle 3 Strings voll übergibt, ergibt das xor ture wird negiert und false kommt raus. Hier, eine funktionierende Variante mit nur einen Zugriff auf die Variablen:
Delphi-Quellcode:
function XZiseSeinVergleich(const S1, S2, S3: string): Boolean;
begin if Str1='' then begin if Str2='' then result := Str3='' else Result := false end else begin if Str2<>'' then result := Str3<>'' else Result := false end; end; |
Re: Überprüfen, ob drei Vergleiche gleich sind
Hm, du hast Recht. Beim schreiben hatte ich nicht beacht, dass xor nicht so einfach auf n Operanden erweiterbar ist :) Letztlich kommt es wohl immer aufs selbe raus: in Delphi geht das nur mit mehreren Zugriffen, oder nur mit mehreren Zeilen.
|
Re: Überprüfen, ob drei Vergleiche gleich sind
i hab's jetzt
Delphi-Quellcode:
if not (((S1 = '') xor (S2 = '')) or ((S1 = '') xor (S3 = ''))) then
// oder if not (((S1 <> '') xor (S2 <> '')) or ((S1 <> '') xor (S3 <> ''))) then |
Re: Überprüfen, ob drei Vergleiche gleich sind
Zitat:
Zitat:
Zitat:
Zitat:
Und es hört sich so schön an:
Delphi-Quellcode:
Nun da ich eh die Werte zwischenspeichern "muss", werde ich himitsus letzte Variante nehmen.
Result := ((S1 = '') = (S2 = '') = (S3 = ''))
MfG xZise |
Re: Überprüfen, ob drei Vergleiche gleich sind
Zitat:
|
Re: Überprüfen, ob drei Vergleiche gleich sind
Aus der Tabelle aber nicht mehr. (Imho)
MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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