problem mit "CreateFile"

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

problem mit "CreateFile"

Beitrag 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
Na alles Senkrecht?
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

Beitrag 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.
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
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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"
Na alles Senkrecht?
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

Beitrag 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)
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
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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!
Na alles Senkrecht?
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

Beitrag 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
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
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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:
Na alles Senkrecht?
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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?
Na alles Senkrecht?
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

Beitrag 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!
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
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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:
Na alles Senkrecht?
Antworten