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;