if I run the following code, the file "Daten.txt" I never find on my HD. The Code works as long as purebasic runs respective until you restart the Mac. It seems, that the "save"-function only writes into a "tempfile".
To read another known file is impossible.
Code: Select all
;Variablen definieren
Dim text$(100):Global anzahl
;Fenster und Gadget-Liste
If OpenWindow(0,100,100,400,520,#PB_Window_SystemMenu,"Daten laden/speichern")
If CreateGadgetList(WindowID())
ButtonGadget(1,20,20,100,20,"Laden")
ButtonGadget(2,140,20,100,20,"Speichern")
ButtonGadget(3,260,20,100,20,"Löschen")
ListViewGadget(4,20,60,360,380)
ButtonGadget(5,20,460,170,20,"Ein Element hinzufügen")
ButtonGadget(6,200,460,180,20,"Letztes Element löschen")
EndIf
Else
MessageRequester("","Fenster konnte nicht geöffnet werden!",0)
EndIf
;StatusBar öffnen
If CreateStatusBar(0,WindowID())
AddStatusBarField(500)
EndIf
;Laden
Procedure Laden()
If ReadFile(1,"Daten.txt")
anzahl=Val(ReadString())
For a=0 To anzahl
text$(a)=ReadString()
AddGadgetItem(4,-1,text$(a))
Next
CloseFile(1)
StatusBarText(0,0,"Daten erfolgreich geladen "+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
EndIf
EndProcedure
;Speichern
Procedure Speichern()
If OpenFile(1,"Daten.txt")
WriteStringN(Str(anzahl))
For a=0 To anzahl
WriteStringN(text$(a))
Next
CloseFile(1)
StatusBarText(0,0,"Daten erfolgreich gespeichert "+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
EndIf
EndProcedure
;Zum eigentlichen Programmstart: Laden aufrufen
Laden()
;Das erste Element der Liste aktivieren
SetGadgetState(4,0)
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_Gadget
;Schalter LADEN
If EventGadgetID()=1
ClearGadgetItemList(4):Laden()
EndIf
;Schalter SPEICHERN
If EventGadgetID()=2
Speichern()
EndIf
;Schalter LISTE LÖSCHEN
If EventGadgetID()=3
ClearGadgetItemList(4)
StatusBarText(0,0,"Liste gelöscht "+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
EndIf
;Schalter NEUER EINTRAG
If EventGadgetID()=5
anzahl=anzahl+1
text$(anzahl)="Neuer Eintrag "+FormatDate("%hh:%ii:%ss", Date())
AddGadgetItem(4,anzahl,text$(anzahl))
EndIf
;Schalter LETZTEN EINTRAG LÖSCHEN
If EventGadgetID()=6
If anzahl>=0
RemoveGadgetItem(4,anzahl)
anzahl=anzahl-1
EndIf
EndIf
EndIf
Until EventID = #PB_EventCloseWindow
End
But what is wrong? Or is this a bug in the actual Mac-version?
Hope, anyone can help.