Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#13

AW: E/A-Fehler in Wrapperklasse

  Alt 22. Feb 2012, 10:43
fmClose und Co. sind "komische" Magicnumbers. (als Enum, mit fmClose=0 wären die praktischer gewesen)
Nein wäre es nicht, weil man dann nicht unterscheiden könnte, ob schon ein assign gemacht wurde oder nicht!
Stimmt auch wieder. Mir fällt zwar auf die Schnelle kein Grund ein, warum ich das wissen wollte, aber da gibt es bestimmt "kreativere" Menschen.

Übrigens ist mir gerade beim Betrachten der Implementation von AssignFile (also System._Assign) ein Lapsus aufgefallen: Die Länge des übergebenen Strings wird nicht geprüft. Führt man folgende Routine aus
Delphi-Quellcode:
procedure Test2;
var
  Opfer: ShortString;
  f: TextFile;
begin
  Opfer := StringOfChar('.', 255);
  AssignFile(f, StringOfChar('X', 500));
end;
so verstümmelt der Aufruf von AssignFile kommentarlos die Variable Opfer. Klar ist der übergebene String kein gültiger Dateiname, aber eine Exception wäre da wohl schon angebracht.
Uli Gerhardt
  Mit Zitat antworten Zitat