Seite 1 von 2

problem mit "CreateFile"

Verfasst: 19.02.2006 13:51
von FISCHAUGE
Hi, ich habe ein kleines Problem mit CreateFile!

Folgendes:

Code: Alles auswählen

CreateFile(150,"data\sup\"+GetGadgetText(8)+"_1.dat")
WriteStringN(GetGadgetText(32))
CloseFile(150)
Jetzt müsste er doch die Datei erstellen, egal ob Sie vorhanden ist oder nicht und denn inhalt der ComboBox(32) reinschreiben!

Leider bekomme ich immer die Fehlermeldung "There is no current File"

ich habe denn code jetz ohne If und Else gepostet!
Könnt ihr mir da weiterhelfen?

danke

Verfasst: 19.02.2006 13:57
von ts-soft
In der Hilfe steht ganz deutlich, das das Erstellen einer Datei zu prüfen ist.
Lies Dir das nochmal durch und ändere Deinen Code entsprechend ab.
Wenn der Fehler immer noch Auftritt, meldeste Dich einfach nochmal.

PS: Mit diesem Codeschnippsel ist es nicht erkenntlich, oder der gebildete Dateiname gültig ist.

Verfasst: 19.02.2006 14:10
von FISCHAUGE

Code: Alles auswählen

 ComboBoxGadget(32,500,250,100,100,#PB_ComboBox_Editable)
  ReadFile(16,"supplier\supname.dat") 
  For c=0 To 1000$
c$=ReadString()
 AddGadgetItem(32,-1,c$)
 Next
Zuerst lese ich mir die Auswahl für die ComboBox ein!
Geht einwandfrei!

Danach erstelle ich die Datei und schreibe den Ausgewählten Inhalt in die Datei hinein:

Code: Alles auswählen

OpenFile(15,"data\sup\"+GetGadgetText(8)+"_1.dat")
WriteStringN(GetGadgetText(32))
CloseFile(15)
Das geht auch, der inhalt ist nun in die Datei geschrieben!

In meinem nächsten Fenster, lade ich erneut, die auswahl für die ComboBox um änderungen vornehmen zu können, desweiteren, wird auch die Datei(15) geladen, somit zeigt er mir in der ComboBox denn gespeicherten Inhalt wieder an + die Auswahl!

Nun wähle ich in der ComboBox einen anderen Eintrag aus!

anschließend, will ich mit folgendem Code das ganze Überschreiben!

Code: Alles auswählen

CreateFile(150,"data\sup\"+GetGadgetText(8)+"_1.dat")
WriteStringN(GetGadgetText(32))
CloseFile(150)
Und nun bringt er mir den Fehler:

"There is no current File"

Verfasst: 19.02.2006 14:19
von ts-soft
Dann teste mal so:

Code: Alles auswählen

If CreateFile(150,"data\sup\"+GetGadgetText(8)+"_1.dat")
  UseFile(150)
  WriteStringN(GetGadgetText(32))
  CloseFile(150)
Else
  Debug "Böhze Falle, Datei konnte nicht erstellt werden"
EndIf
PS: Die Überprüfung bitte niemals weglassen (in diesm Fall das If)

Verfasst: 19.02.2006 14:43
von FISCHAUGE
Jo, das war ein guter ansatz, habe ich auch schon probiert. ihm vohrer nocheinmal die Datei zuzuweisen! Aber bringt leider nix

Trotzdem danke!

Verfasst: 19.02.2006 14:48
von ts-soft
Dann füg mal ein

Code: Alles auswählen

Debug "data\sup\"+GetGadgetText(8)+"_1.dat"
oder IsFile(150)

Und sag mal, warum die Datei eine so hohe Nummer hat? Ich nummeriere von 0, demnach wäre dein File vielleicht Nr. 3 aber niemals 150 :freak:

Nachtrag:
IsFilename(Dateiname$) könnte auch weiterhelfen

Verfasst: 19.02.2006 15:02
von FISCHAUGE
also erstens!

Die Datei exestiert, bereits durch denn ersten Eintrag, somit liest er mir die Datei auch korrekt aus!

Nur er will Sie einfach nicht überschreiben!

Das mit der hohen Nummer ist einfach, da ich ca. 149 Datein vohrer schon angelegt habe!

:mrgreen:

Verfasst: 19.02.2006 15:26
von FISCHAUGE
Ich glaube, ich habe den Fehler!

Also ich lade die Datei ja zuvor, damit wird die Datei ja von einem Programm verwendet, also bis das Programm beendet ist, kann man doch in dieser Datei keinerlei änderungen vornhemen oder?

Verfasst: 19.02.2006 15:44
von ts-soft
So sieht es aus. Aber wie hätte ich diesen Fehler finden können? Ohne den
entscheidenen Source :freak:

Also bitte in Zukunft einen vollständig Testbaren Code Posten, mit dem der
Fehler nachvollziehbar ist!

Verfasst: 19.02.2006 15:53
von FISCHAUGE
zzzZ.
Danke TS-Soft, für deine Hilfe :allright:

Ich hatte bei der ganze sache einen wichtigen Punkt vergessen, die Datei aus der ich den Inhalt geladen habe, wieder zu schließen!

lol
:freak: