AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

E/A-Fehler in Wrapperklasse

Ein Thema von uligerhardt · begonnen am 21. Feb 2012 · letzter Beitrag vom 22. Feb 2012
Antwort Antwort
Seite 2 von 2     12
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#11

AW: E/A-Fehler in Wrapperklasse

  Alt 22. Feb 2012, 10:20
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!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

AW: E/A-Fehler in Wrapperklasse

  Alt 22. Feb 2012, 10:29
fmClose ist aber nicht 0
Uppsi. Wer rechnet denn mit sowas?
fmClose und Co. sind "komische" Magicnumbers. (als Enum, mit fmClose=0 wären die praktischer gewesen)
Muss von mir aus kein Enum sein, aber der Ordinalwert 0 wäre vielleicht schon günstig gewesen. Naja gut, dann halt if (TTextRec(FFile).Mode <> 0) and (TTextRec(FFile).Mode <> fmClosed) then .
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.672 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
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf