Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249553 (10989)
  Suchen
 Zurück zur Übersicht
 AutorThema: %IOResult
Stefan Schnell
Datum:24.07.01 09:40 Antwortenals Email verschicken (mail@stschnell.de) 


Hallo Community,
stehe vor folgendem Problem:
Kopiere beliebige Datei auf LW A: und fange Fehler nach dem Kopierbefehl mit %IOResult ab.

Proc ErrorCheck
Parameters IOError%
Declare MesStr$
If @Neq(IOError%, 0)
Let MesStr$ = @Add$("IOError ", Str$(IOError%))
@MessageBox(MesStr$, "Hinweis", 48)
EndIf
EndProc

COPY "xyz.xyz" > "a:\xyz.xyz"
ErrorCheck %IOResult
End

Bei dieser Vorgehensweise habe ich jedoch einen "dumpfen" Verdacht. Windows scheint wohl seine eigenen Routinen zu haben, um IO-Fehler abzufangen. Wollte mit diesem Weg Dateien auf eine Diskette kopieren, die aber schon voll war. Prompt kam eine Fehlermeldung und dann der Programmabbruch, dieser dann nochmal mit einer Fehlermeldung. Kann ich vielleicht die Windows eigenen Routinen abschalten, ging auch früher so unter Pascal (wenn ich mich recht erinnere)?

{$I-}
COPY "xyz.xyz" > "a:\xyz.xyz"
{$I+}
ErrorCheck %IOResult
End

So konnten dann eigene IOFehlerbehandlungsroutinen greifen.

Ausserdem generell die Frage was das Abfragen von %IOResult noch bringen soll, wenn Windows schon vorher mit einer Fehlerbehandlungsroutine sich zu Wort meldet?

Danke und Tschüss
Stefan Schnell


Roland G. Hülsmann
Datum: 24.07.01 12:06 Antwortenals Email verschicken (rgh-soft@t-online.de) 


>> ging auch früher so unter Pascal (wenn ich mich recht erinnere)?

Das war unter DOS. Außerdem werden durch $I- nur die Fehlerbehandlungsroutinen der System-Units von Delphi ausgeschaltet. Und die habe ich in PROFAN auf eben diese Weise abgeschaltet. Wenn Windows - wie in diesem Fall bei vollen Disketten - selbst reagiert, hilft das leider nicht. (Das hat nichts mit PROFAN zu tun.) Hier hilft alleine, den Platz vorher zu überprüfen. Hier ist der Programmierer gefragt, etwas Fleißarbeit zu erledigen.


 Zurück zur Übersicht