| Autor |
Beitrag |
Mitmischer 1703
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Mi 28.01.09 17:23
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  !
_________________ Die Lösung ist nicht siebzehn.
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mi 28.01.09 17:29
1. Es gibt keine If Schleife.. sondern nur If Abfragen. Sollte man doch nach über einem Jahr wissen?
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.
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
Mitmischer 1703 
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Mi 28.01.09 17:35
Nein, mir geht es um das (IOResult = 0) and (FileName <> '') nach dem :=. Wieso geht das?
_________________ Die Lösung ist nicht siebzehn.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: 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
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? 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 28.01.09 17:40
|
|
Mitmischer 1703 
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Mi 28.01.09 17:41
Was ist denn, wenn das eine true und das andere false ist?
_________________ Die Lösung ist nicht siebzehn.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mi 28.01.09 18:04
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Mitmischer 1703 
      
Beiträge: 754
Erhaltene Danke: 19
Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
|
Verfasst: Fr 30.01.09 21:56
Ja, sorry!
_________________ Die Lösung ist nicht siebzehn.
|
|
|