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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

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

Beitrag 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.
Zuletzt geändert von Mok am 03.11.2008 20:03, insgesamt 1-mal geändert.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag 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)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Antworten