Seite 1 von 3

Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 14:17
von PB42
Hallo, wieso funktioniert in meinem Fall Createfile() nicht im Zusammenhang mit einem Editorgadget? Hier der Codeausschnitt:

Code: Alles auswählen


    a = a + 1
    AddGadgetItem(116,a,GetGadgetText(12) + "." + GetGadgetText(13) + "." +GetGadgetText(14)) 
      If CreateFile(4,"Daten\Editor.txt")
        WriteStringN(4,GetGadgetText(116))
        CloseFile(4)
      EndIf
Es wird nicht die Bohne was in die Datei "Daten\Editor.txt" geschrieben. Danke für Hinweise, auch natürlich dafür, wenn für das Auslesen und Abspeichern von mehreren Zeilen im Editorgadget nochmal Extraoptionen notwendig sind.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 14:34
von cxAlex
Gibt es den Ordner Daten\ ? Hast du schreibrechte? Os, x86/x64, PB Version?

Gruß, Alex

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 14:38
von STARGÅTE
Bitte benutze doch den Debugger !
und lass dir dort alles Ausgeben was geht/nicht geht:

Code: Alles auswählen

a = a + 1
AddGadgetItem(116,a,GetGadgetText(12) + "." + GetGadgetText(13) + "." +GetGadgetText(14)) 
If CreateFile(4,"Daten\Editor.txt")
  Debug "File erstellt!"
  Debug "Inhalt:"
  Debug GetGadgetText(116)
  WriteStringN(4,GetGadgetText(116))
  CloseFile(4)
EndIf
dadurch siehst du gleich wo es hängt

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 14:47
von PB42
Den Ordner Daten gibt es und der funktioniert ansonsten ganz prima in meinem Programm. Beim Debuggen wird mir ausgegeben

"File erstellt!"
"Inhalt:"
11.6.2010

Das Datum wird auch korrekt in das Editorgadget reingeschrieben. Nur hinterher ausgelesen und gespeichert wird es nicht. Bug in PureBasic?

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 14:58
von STARGÅTE
Bug in PureBasic?
:lol: klar ....

Da dir der Debugger ja das zu schreibende Anzeigt, muss der Fehler von DIR an einer anderen stelle sein!

Überschreibst du die Datei wieder ?

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 15:47
von PB42
Ich habe mir jetzt die Mühe gemacht, den Programmteil in einem Extrafenster zu isolieren. Fazit: Dasselbe in Grün! Und es kommt noch besser: Während in meinem eigentlichen Programm der Debugger anspringt und 6.11.2010 ausliest, tut er es im isolierten Fenster (der folgende Code) nicht, obwohl ich das 1:1 kopiert habe! Nur die Eintäge im Editorgadget habe ich jetzt manuell eingetragen, aber das Anzeigeergebnis bleibt ja gleich: 6.11.2010

Code: Alles auswählen

OpenWindow(0,0,0,300,300,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget)

CreateGadgetList(WindowID(0))
ButtonGadget(6,20,68,104,28,"Enter")
EditorGadget(116,147,68,92,185)
    
Repeat
event = WaitWindowEvent(1)
eventgadget = EventGadget()

  Select event 
  Case #PB_Event_Gadget      
    Select EventGadget()
    
    Case 6
    a = a + a
    AddGadgetItem(116, a, "6" + "." + "11" + "." + "2010") 
    If CreateFile(4,"Daten\Editor.txt")
    WriteStringN(4,GetGadgetText(116))
    CloseFile(4)
    EndIf
    
      If ReadFile(4,"Daten\Editor.txt")
      Debug ReadString(4)
      CloseFile(4)
      EndIf
      
    EndSelect
  EndSelect     
        
Until event = #PB_Event_CloseWindow     
Ich hol mir erstmal ein Bier. Befindet sich im Ordner Kühlschrank und wird mühelos ausgelesen.

P.S.: Wird doch ausgelesen. Hatte einfach vergessen, das isolierte Fenster abzuspeichern.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 15:51
von STARGÅTE
Dein Code funktioniert bei mir ohne Probleme!
Natürlich unter der Voraussetzung das es ein Ordner "Daten" mit Schreibrechten gibt!
Debugger sagt:
6.11.2010

Es liegt also 100% an dir, weil dir Schreibrechte fehlen, oder der Ordner nicht existiert!

Probier doch mal ins TEMP Verzeichnis zu schreiben:
CreateFile(4,GetTemporaryDirectory()+"Editor.txt")
ReadFile(4,GetTemporaryDirectory()+"Editor.txt")

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 15:52
von rolaf
PB42 hat geschrieben:Ich hol mir erstmal ein Bier. Befindet sich im Ordner Kühlschrank und wird mühelos ausgelesen.
:lol: Schon wieder n Bug.
Vom auslesen wirste nicht besoffen. :wink:



Edit: Hau nicht gleich in Sack. Erstmal das Bier munden lassen und dann nochmal mit Ruhe dran setzen.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 16:04
von PB42
Beitrag war nicht mehr aktuell, daher gelöscht.

Re: Createfile() mit Editorgadget funktioniert nicht

Verfasst: 06.11.2010 16:53
von PB42
Eben habe ich festgestellt, daß die Anzeige aus dem Editorgadget doch in die Datei "Daten\Editor.txt" geschrieben wird - aber erst dann, wenn ich das ganze PurePasic beende und dann wieder neu starte. Bestimmt kann damit einer von Euch etwas anfangen. Danke schonmal.