File object not initialized ???

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

File object not initialized ???

Beitrag von sebsch80 »

Hallo,

#File object not initialized

was hat diese Fehlermeldung zu sagen, bzw. was mach ich falsch?
Wollte nur in die Gadgets ein paar Zahlen eintragen und sie dann unter dem angegebenen Pfad als Text abspeichern.

Code: Alles auswählen

If OpenWindow(0,100,100,610,130,"Fussball-Tipp",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
 If CreateToolBar(0, WindowID(0))
    ToolBarStandardButton(0, #PB_ToolBarIcon_New)
    ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
    ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
 EndIf
StringGadget (0,5,28,60,14,"Spiel",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (1,70,28,50,14,"1",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (2,130,28,50,14,"2",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (3,190,28,50,14,"3",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (4,250,28,50,14,"4",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (5,310,28,50,14,"5",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (6,370,28,50,14,"6",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (7,430,28,50,14,"7",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (8,490,28,50,14,"8",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (9,550,28,50,14,"9",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
For Z1 = 0 To 9
SetGadgetColor (Z1,#PB_Gadget_BackColor,$000000)
SetGadgetColor (Z1,#PB_Gadget_FrontColor,$0000FF)
Next
StringGadget (10,5,47,60,16,"Ergebnisse",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (11,70,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (12,130,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (13,190,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (14,250,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (15,310,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (16,370,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (17,430,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (18,490,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (19,550,45,50,20,":",#PB_Text_Center | #PB_String_Numeric)
For Z1 = 10 To 19
SetGadgetColor (Z1,#PB_Gadget_BackColor,$0000FF)
SetGadgetColor (Z1,#PB_Gadget_FrontColor,$33FFFF)
Next
StringGadget (20,5,67,60,16,"Tipp",#PB_String_BorderLess|#PB_Text_Center|#PB_String_ReadOnly)
StringGadget (21,70,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (22,130,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (23,190,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (24,250,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (25,310,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (26,370,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (27,430,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (28,490,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
StringGadget (29,550,65,50,20,":",#PB_Text_Center | #PB_String_Numeric)
For Z1 = 20 To 29
SetGadgetColor (Z1,#PB_Gadget_BackColor,$00FFFF)
SetGadgetColor (Z1,#PB_Gadget_FrontColor,$000000)
Next
ButtonGadget (30,200,95,70,30,"Vergleiche",#PB_Text_Center)
EndIf
Repeat                                                                ;\
Event = WaitWindowEvent() 
If Event = #PB_Event_Menu
If EventMenu()=2
; MessageRequester("","Programmspeichern!",0)
    CreateFile (1,"D:\Programme\PureBasic\Test\test.txt")
    For i=11 To 19 
            WriteStringN(1,GetGadgetText(i))
        Next i 
        CloseFile(1)
      EndIf 
  EndIf
Until event = #PB_Event_CloseWindow 
Kann mir jemand helfen?
PureBasic 4.00 / Anfänger
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Das CreateFile wohl fehlgeschlagen ist.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Das weist dich darauf hin, dass die Datei nicht erstellt werden könnte :wink:

//Nachtrag:
edel war schneller...
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

Code: Alles auswählen

    If CreateFile (1,"D:\Programme\PureBasic\Test\test.txt")
      For i=11 To 19
        WriteStringN(1,GetGadgetText(i))
      Next i
      CloseFile(1)
    Else
      Debug "..weil die datei vermutlich nicht erstell werden konnte"
    EndIf
also prüfe den pfad und dateinamen. ordner müssen bereits existieren.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag von sebsch80 »

@ #NULL

ich dachte es wäre egal ob der Pfad bereits existiert

glaube mal in der Hilfe gelesen zu haben das wenn die angegebene Datei nicht existiert sie automatisch erzeugt wird
PureBasic 4.00 / Anfänger
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag von sebsch80 »

noch ne frage, was hat eigentlich das i hinter Next zu suchen oder besser gesagt warum muß es dort nochmal eingegeben werden?
PureBasic 4.00 / Anfänger
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

die datei wird auch erstellt wenn sie im pfad nicht existiert, dass ist ja der sinn von creatfile() (existierende werden zuvor gelöscht). aber wenn der pfad nicht existiert, wird nichts gelöscht und nichts erstellt - die funktion schlägt fehl.

<edit:>
zur zweiten frage: es muß nicht angegeben werden. ein einfaches Next reicht auch aus. der compiler sieht anhand der schachtelung selbst, zu welchem For es gehört.
Zuletzt geändert von #NULL am 18.10.2006 18:43, insgesamt 2-mal geändert.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Code: Alles auswählen

For n=1 to 100
     Debug n
Next n
Meinst du sowas wie hier?

Das ist nur zur Deko, also wenn man mehrere Schleifen ineinander verschachtelt, dann kann man auf sehen, welches For zu welchem Next gehört. Kannst du aber auch weglassen!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
sebsch80
Beiträge: 53
Registriert: 28.09.2006 20:28
Wohnort: Suhl
Kontaktdaten:

Beitrag von sebsch80 »

ok also jetzt hats funkrioniert

danke euch
PureBasic 4.00 / Anfänger
Antworten