Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Error Handler - aber wie?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 25.02.2007, 14:25    Titel: Error Handler - aber wie? Antworten mit Zitat

Hallo!
Mein Prog hat mehrere Module mit jedweils vielen Subs und Functions.
Darin treten überall Dateizugriffe über eine Netzwerkverbindung auf.

Ich benötige nun einen Errorhandler, der nach einem möglichen Aussetzter der Netzwerkverbindung (Fehler 53 - Datei nicht gefunden) auf einen Tastendruck wartet und dann exakt an die gleiche Stelle wieder zurückspringt, damit der fehlgeschlagene Dateizugriff übers Netz
wiederholt werden kann.

ON ERROR GOTO fehlerroutine

[.... Programm...]

fehlerroutine:
IF ERR = 53 THEN
PRINT "Keine Verbindung!"
DO: LOOP WHILE INKEY$ = ""
RESUME
END IF


Das Problem ist zum einen, dass ich das Programm wegen zu wenig Speichers nicht mehr kompilieren kann, sobald ich das RESUME reinsetze, außerdem wird ja (wenn ich das in der Hilfe richtig verstanden habe) nicht unbedingt an genau der Zeile resumt, die den Fehler verursachte.
Wie kann ich nun also am geschicktesten einen fehlgeschlagenen Dateizugriff wiederholen lassen???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 25.02.2007, 14:31    Titel: Antworten mit Zitat

ich würds mit
resume zeilenmarkewoallesanfaengt
machen

und z.B.
Code:

on error goto fehler 'ich hasse goto...

line input dateiname$
dateioeffnen:
open dateiname for input as #1
[blablabla]
close #1
end

fehler:
[behandlung] 'also z.B. gültigen dateinamen$ angeben
resume dateioeffnen


denk ich
nich getestet
nich damit rumprobiert

hoffe es geht happy
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 25.02.2007, 14:54    Titel: Antworten mit Zitat

Eine andere Idee wäre sicher, zu überprüfen, ob in diesem Falle die Datei überhaupt existiert...

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 25.02.2007, 14:56    Titel: Antworten mit Zitat

Was bei einer Netzwerk-Verbindung aber auch nicht verbindlich ist. Die Verbindung kann ja abreißen, weshalb die im vorhergehenden Codeblock ausgeführte Überprüfung fast wertlos wäre, in diesem Fall.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
steini



Anmeldungsdatum: 17.09.2004
Beiträge: 58

BeitragVerfasst am: 25.02.2007, 21:41    Titel: Antworten mit Zitat

@kleiner_hacker
Thx,
wenn ich nur eine Datei hätte wärs ja kein Probelem, ich habe aber bestimmt an die 200 Dateizugriffe in allen möglichen Modulen/subs/funktionen und würde es halt gerne mit EINER Fehlerbehandlung hinbekommen!

Also im Prinzip

EIN Fehlerahndler:
Wenn Fehler 53 dann warte auf Tastendruck und geh zur Fehlerzeile zurück und führe sie erneut aus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz