Seite 1 von 1

°GELÖST° Frage zu SaveFileRequester() [PB 3.94] °GELÖST°

Verfasst: 14.06.2008 16:45
von Mok
Hi!
Es passiert mir öfters, dass wenn ich einen Code schreib, den Benutzer informieren will, ob Datei(en), Information(en), Pfade etc. richtig gespeichert (oder so) werden.
Die Einfachste Version wäre folgendes Beispiel (es geht NICHT darum wie [un]umständlich der Code ist, also beschränkt euch bitte auf meine Frage):

Code: Alles auswählen

; SaveFileRequester() Beispiel
; 

frage = MessageRequester("Frage...","Wollen Sie jetzt eine Testdatei speichern?",4)

If frage = 7
  End
EndIf

Name$ = SaveFileRequester("Testdatei speichern...!","C:\","Textdatei (txt)|*.txt|Alle Dateien|*.*",0)

CreateFile(0,Name$ + ".txt")
WriteStringN("Dies ist ein Test")

MessageRequester("Info","Testdatei erfolgreich abgespeichert!",32)

Wenn ich aber beim SFR auf "Abbrechen" klicke, kommt das Infofenster mit "Testdatei erfolgreich abgespeichert!" trotzdem, obwohl sie nicht gespeichert wird.
Sogar hier: (mit If―EndIf Block)

Code: Alles auswählen

; SaveFileRequester() Beispiel
; 

frage = MessageRequester("Frage...","Wollen Sie jetzt eine Testdatei speichern?",4)

If frage = 7
  End
EndIf

Name$ = SaveFileRequester("Testdatei speichern...!","C:\","Textdatei (txt)|*.txt|Alle Dateien|*.*",0)

If CreateFile(0,Name$ + ".txt")
WriteStringN("Dies ist ein Test")

MessageRequester("Info","Testdatei erfolgreich abgespeichert!",32)
Else
MessageRequester("Info","Testdatei konnte nicht gespeichert werden",16)
EndIf
Wie kann ich das vermeiden?
Klar, ich könnte abfragen zB mit

Code: Alles auswählen

If OpenFile(0,Name$) = 0
  MessageRequester("Info","Datei wurde nicht gespeichert")
Endif
Aber wenn einige mehrere Dateien überprüft werden müssen, wird der Code fufzig Meter lang.

Verfasst: 14.06.2008 16:51
von mk-soft
SaveFileRequester liefert bei abbrechen ein Leerstring zurück

Code: Alles auswählen

Name$ = SaveFileRequester("Testdatei speichern...!","C:\","Textdatei (txt)|*.txt|Alle Dateien|*.*",0)
If Name$ = ""
  End
EndIf
FF :wink:

Verfasst: 03.11.2008 18:30
von Mok
Ich mach keine Römerausgrabungen... aber wenn ich jetz nen Pfad auswähle, und speichere, kommt die Fehlermeldung trotzdem...
Code:

Code: Alles auswählen

Save$ = SaveFileRequester("VMT speichern unter...","C:\","Valve Material Type (*.vmt)|*.vmt|Textdokument (*.txt; *.text; *.diz)|*.txt;*.text;*.diz|Alle Dateien|*.*",0)
       If Safe$ = ""
         MessageRequester("Fehler!","Die VMT konnte nicht gespeichert werden!",16)
       EndIf
Edit
Kann mir denn keiner helfen?

Edit2
Es funzt! (Ka, was vorher los war)