Autor Beitrag
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Mi 28.01.09 17:23 
Hi DF!

In dem Beispiel zur Prozedur "Reset" der Delphi-Hilfe ist mir folgende Zeile aufgefallen:
FileIsThere := (IOResult = 0and (FileName <> '')

Hier der gesamte Quelltext:
ausblenden 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;

{ Boolesche Funktion, die True zurückliefert, wenn die Datei vorhanden ist.
  Andernfalls wird False zurückgegeben. Closes the file if it exists. }

 var
  F: file;
begin
  {$I-}
  AssignFile(F, FileName);
  FileMode := 0;  { Datei mit Schreibschutz versehen }
  Reset(F);
  CloseFile(F);
  {$I+}
  FileIsThere := (IOResult = 0and (FileName <> '');
end;  { FileIsThere }

begin

  if FileIsThere(ParamStr(1)) then { Dateiname von Kommandozeile lesen }
    Canvas.TextOut(1010'File exists')
  else
    Canvas.TextOut(1010'File not found');
end;

Ich wäre froh, wenn ihr mein Weltbild wieder geraderücken würdet :mrgreen:!

_________________
Die Lösung ist nicht siebzehn.
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: 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.

_________________
PROGRAMMER: A device for converting coffee into software.
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 28.01.09 17:37 
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
Nein, mir geht es um das (IOResult = 0) and (FileName <> '') nach dem :=. Wieso geht das?
Weil (IOResult = 0and (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? ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 28.01.09 17:40 
Mitmischer 1703 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 28.01.09 17:44 
Wenn der Fernseher an ist und Sat.1 eingestellt ist, dann schalte um auf ARD.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Fr 30.01.09 21:56 
Ja, sorry!

_________________
Die Lösung ist nicht siebzehn.