Seite 2 von 2
Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 14.02.2021 14:55
von TheCube
Habe den Thread hier jetzt nicht näher verfolgt und das Gesamte auch nicht ausprobiert.
Aber:
Code: Alles auswählen
If FileSize(GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind")) = -1
CreateFile(0, GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind"))
WriteString(0, GetGadgetItemText(0, GetGadgetState(0), 1))
CloseFile(0)
Else
MessageRequester("Information","Couldn't write .ini file!")
EndIf
stimmt ja eigentlich nicht. Wenn die .ini schon vorhanden ist gibst du einen Schreibfehler aus.
Das ist aber bei createfile() zu prüfen ... außer du willst das so.

Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 14.02.2021 19:32
von Zerosurf
TheCube hat geschrieben:Habe den Thread hier jetzt nicht näher verfolgt und das Gesamte auch nicht ausprobiert.
Aber:
Code: Alles auswählen
If FileSize(GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind")) = -1
CreateFile(0, GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind"))
WriteString(0, GetGadgetItemText(0, GetGadgetState(0), 1))
CloseFile(0)
Else
MessageRequester("Information","Couldn't write .ini file!")
EndIf
stimmt ja eigentlich nicht. Wenn die .ini schon vorhanden ist gibst du einen Schreibfehler aus.
Das ist aber bei createfile() zu prüfen ... außer du willst das so.

hmm.... weiß grad nicht, was du meinst?
Wenn Datei nicht vorhanden ist, wird sie erstellt und sonst kommt die Fehlermeldung wenn die Datei nicht erstellt werden kann.
Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 14.02.2021 20:39
von TheCube
Naja, wenn du das Programm zum 2ten oder xten mal startest bekommst du jedesmal eine
Fehlermeldung,
obwohl eigentlich nur die .ini vom 1. starten halt schon vorhanden ist.
Würde mich bei fremder Software irritieren ... meine Platte ist ja nicht schreibgeschützt oder kaputt.
M.M.n. besser:
Wenn ini nicht vorhanden -> ini erstellen ... Wenn createfile erfolgreich -> Meldung "ini creation sucessful"
Wenn ini vorhanden und geladen -> Einfach 'schweigen' oder Meldung "ini load sucessful"
Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 14.02.2021 20:48
von Kiffi
Zerosurf hat geschrieben:und sonst kommt die Fehlermeldung wenn die Datei nicht erstellt werden kann.
nee, stimmt nicht. Wenn, dann schon so:
Code: Alles auswählen
If FileSize(GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind")) = -1
If CreateFile(0, GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind"))
WriteString(0, GetGadgetItemText(0, GetGadgetState(0), 1))
CloseFile(0)
Else
MessageRequester("Information","Couldn't write .ini file!")
EndIf
EndIf
Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 14.02.2021 21:04
von Zerosurf
Kiffi hat geschrieben:Zerosurf hat geschrieben:und sonst kommt die Fehlermeldung wenn die Datei nicht erstellt werden kann.
nee, stimmt nicht. Wenn, dann schon so:
Code: Alles auswählen
If FileSize(GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind")) = -1
If CreateFile(0, GetPrefsFile("FocusApp", "AppForFocus.ini", "DeepBlueMind"))
WriteString(0, GetGadgetItemText(0, GetGadgetState(0), 1))
CloseFile(0)
Else
MessageRequester("Information","Couldn't write .ini file!")
EndIf
EndIf
Ahhh... jetzt versteh ich! Vielen Dank - macht natürlich mehr Sinn!

Re: Warum funktioniert der Code im Compiler und nicht als ex
Verfasst: 15.02.2021 09:22
von ts-soft
Meine Procedure einfach so benutzen, egal ob Eintrag bereits existiert. Die Procedure gibt einen Leerstring bei Fehler zurück. Mehr ist nicht zu prüfen!