Warum funktioniert der Code im Compiler und nicht als exe?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
TheCube
Beiträge: 150
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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. /:->
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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.
PureBasic 6.00 | Windows 10 pro (x64)
Benutzeravatar
TheCube
Beiträge: 150
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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"
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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
Hygge
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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! :allright:
PureBasic 6.00 | Windows 10 pro (x64)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Warum funktioniert der Code im Compiler und nicht als ex

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten