Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Zuweisung im if-Schleifen-Stil?!
Mitmischer 1703 - Mi 28.01.09 17:23
Titel: Zuweisung im if-Schleifen-Stil?!
Hi DF!
In dem Beispiel zur Prozedur "Reset" der Delphi-Hilfe ist mir folgende Zeile aufgefallen:
FileIsThere := (IOResult = 0) and (FileName <> '')
Hier der gesamte Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| function FileIsThere(FileName: string): Boolean;
var F: file; begin {$I-} AssignFile(F, FileName); FileMode := 0; Reset(F); CloseFile(F); {$I+} FileIsThere := (IOResult = 0) and (FileName <> ''); end;
begin
if FileIsThere(ParamStr(1)) then Canvas.TextOut(10, 10, 'File exists') else Canvas.TextOut(10, 10, 'File not found'); end; |
Ich wäre froh, wenn ihr mein Weltbild wieder geraderücken würdet :mrgreen:!
Xentar - Mi 28.01.09 17:29
1. Es gibt keine If Schleife.. sondern nur If Abfragen. Sollte man doch nach über einem Jahr wissen? :P
2. Hä? Statt Result := ..... kann man auch schreiben <Funktionsname> := .... ist aber unschön. Kann zu Probleme führen, wenn man die Funktion mal umbenennt, außerdem find ich dies schwieriger lesbar.
3. Könnte man auch einfach FileExists verwenden. ;) aber dann wäre es ja kein Beispiel für Reset.
Mitmischer 1703 - Mi 28.01.09 17:35
Nein, mir geht es um das (IOResult = 0) and (FileName <> '') nach dem :=. Wieso geht das?
JayEff - Mi 28.01.09 17:37
Mitmischer 1703 hat folgendes geschrieben : |
| Nein, mir geht es um das (IOResult = 0) and (FileName <> '') nach dem :=. Wieso geht das? |
Weil
(IOResult = 0) and (FileName <> '') eine Wahr/Falsch Aussage ist. Und was sind Wahr/Falsch Aussagen? Booleans. Und was ist der Rückgabewert der Funktion? Ein Boolean :mrgreen:
Genauso, wie du
aBool := True; schreiben kannst, kannst du auch
aBool := (1 = 1); schreiben. Ganz ähnlich funktioniert auch
if (1 = 1) = true then aber das macht ja keiner, oder? ;)
Mitmischer 1703 - Mi 28.01.09 17:41
Was ist denn, wenn das eine true und das andere false ist?
jaenicke - Mi 28.01.09 17:44
Wenn der Fernseher an ist
und Sat.1 eingestellt ist, dann schalte um auf ARD.
Delphi-Quelltext
1: 2: 3: 4: 5:
| var SwitchToArd: Boolean; begin
SwitchToArd := (TV.Status = staOn) and (TV.Sender = senSat1); |
Dann wäre, wenn der Fernseher an, aber auf einem anderen Sender als Sat.1 ist, SwitchToArd danach False, genauso wie auch im deutschen Satz. ;-)
Denn (True and False) ist natürlich False.
Mitmischer 1703 - Fr 30.01.09 21:56
Ja, sorry!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!