die DeleteFile Formatierung finde ich persönlich höchst unübersichtlich. Ein Grundsatz bei uns. Ein "if .. then .. else" entweder komplett ohne ein "begin" und "end", wenn eine einzeilige Anweisungen reicht, oder alle beide Fälle in "begin- end" Blöcke.
In der DeleteFile Formatierung weiter oben würde man überhaupt nicht erkennen, in welchem Fall der Code nämlich einfach nix machen würde. (else Not isDir fehlt) Bei komplizierten Algorithmen kann das schwierig werden. Leerzeilen immer so, wie es am übersichtlichsten aussieht. Dass man den Code auch am "optischen" Eindruck wiedererkennt.
so sähe dass bei uns aus..
Delphi-Quellcode:
procedure TFtpBrowser.DeleteFile (AFile: String; IsDir: Boolean);
begin
if (IsDir and (AFile <> '.') and (AFile <> '..')) then begin
try
DeleteAll(AFile);
FFtp.RemoveDir(FDir.Text + AFile);
except
TriggerLogEvent('Could not remove directory ' + AFile, etError);
end;
end else begin
if (not IsDir) then begin
try
FFtp.Delete (FDir.Text + AFile);
except
TriggerLogEvent('Could not remove file ' + AFile, etError);
end;
end;
end;
end; // DeleteFile
edit:
bzw sehe ich gerade, dass der Code DeleteFile eine komplett "schiefe" Logik hat, und ich in sauber in einen IsDir und else IsDir unterteilen würde
.. (Den Fehler sieht man aber erst, wenn man "ordentlich" formatiert
Eine IsDir Prüfung kann man sich sparen, was vor allen Dingen wichtig ist, wenn es um zeitkritischen Code geht.
nämlich so:
Delphi-Quellcode:
procedure TFtpBrowser.DeleteFile (AFile: String; IsDir: Boolean);
begin
if (IsDir) then begin
if (AFile <> '.') and (AFile <> '..') then begin
try
DeleteAll(AFile);
FFtp.RemoveDir(FDir.Text + AFile);
except
TriggerLogEvent('Could not remove directory ' + AFile, etError);
end;
end;
end else begin // else IsDir
try
FFtp.Delete (FDir.Text + AFile);
except
TriggerLogEvent('Could not remove file ' + AFile, etError);
end;
end;
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.