Variable zahl wird nicht in datei gespeichert
Übersicht

![]() |
Raiden93Betreff: Variable zahl wird nicht in datei gespeichert |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo ich habe das Problem das wenn ich Pfeiltaste nach Oben Drücke und meine Variable um 1 erhöht wird und dann das Programm schliese und neu starte das es nicht gespeichert wird.
Code: [AUSKLAPPEN] Graphics 800,600,32,0 SetBuffer BackBuffer() Global tester= 123 Repeat fileout = WriteFile ("mydata.dat") WriteByte fileout,tester WriteFloat fileout,123.456 WriteInt fileout,12345678 WriteLine fileout,"Hallo" WriteShort fileout,12345 WriteString fileout,"Super" CloseFile fileout filein = ReadFile ("mydata.dat") wert1 = ReadByte (filein) wert2# = ReadFloat (filein) wert3 = ReadInt (filein) wert4$ = ReadLine$ (filein) wert5 = ReadShort (filein) wert6$ = ReadString$ (filein) CloseFile filein Text 400,300, "Byte: " +wert1 Text 400,325, "Float: " +wert2 Text 400,350, "Int: " +wert3 Text 400,375, "Line: " +wert4 Text 400,400, "Short: " +wert5 Text 400,425, "String: " +wert6 If KeyHit (200) Then tester = tester +1 End If Flip Cls Until KeyHit(1) End |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
au backe , du lädst öffnest und schließt die Datei in jedem Frame erneut. Das ist nicht gut, da dadurch dein Programm arsch langsam wird.
Und deine Variable test musst du noch in die Datei schreiben, du erhöst sie nur , sagst aber nirgends, dass du sie speichern möchtest. |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja ich verstehe das einfach nicht mit der datei ^^ sitze schon viele tage an diese Funktion aber verstehe es nicht wirklich ... | ||
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie speichere ich denn am Besten Variablen? | ||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
also am Anfang (vor der Mainschleife) öffnest du eine Datei mit OpenFile![]() Mit OpenFile bekommst du ein Handle zurück. Dann nimmste die Read bzw Write Anweisungen um was zu schreiben oder auszulesen. Mit SeekFile ![]() |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Problem ist, dass du willst, dass die Werte auch nach einem Neustart da sind. Allerdings hast du vergessen, dass du am Anfang der Schleife alle Werte speicherst. D.h. Wenn du das Programm neustartest werden wieder alle Standardwerte in die Datei gespeichert.
An deiner Stelle würde ich mir ein Tutorial durchlesen und es später neu versuchen und nicht auf diesem Programm herumhacken. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit den schreiben/lesen von daten ist am Anfang kein leichtes thema, schau dir das Programm hier genau an, es entspricht deinem.
Sollte ich tippfehler haben tut mir das leid, schreibe nicht so gern im browser. BlitzBasic: [AUSKLAPPEN]
|
||
It's done when it's done. |
- Zuletzt bearbeitet von Pummelie am Do, Apr 01, 2010 19:15, insgesamt einmal bearbeitet
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok das Hilft mir schonmal gut weiter nur weiß ich nicht wie der Code so aussieht um mir vor zu stellen wie es geht währe nett wenn du mir ein Beispiel Posten könntest sagen wir mal meine Variable heißt.
Code: [AUSKLAPPEN] Global Level = 1 und ich möchte das die Variable gespeichert wird und beim öffnen des Programmes wieder geöffnet wird. Danke im vor raus. |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann solltest du die Routine zum Speichern ans Ende der Datei setzen.
BlitzBasic: [AUSKLAPPEN] Const filename$="test.txt" |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Do, Apr 01, 2010 19:16, insgesamt einmal bearbeitet
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
so hier mal ein einfaches beispiel:
BlitzBasic: [AUSKLAPPEN] If FileType("mydata.dat") = 0 Then ;wenn die datei nicht existiert, schreibe eine mit den standart werten |
||
It's done when it's done. |
- Zuletzt bearbeitet von Pummelie am Do, Apr 01, 2010 19:27, insgesamt einmal bearbeitet
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich danke dir mit deinem Post.So habe ein versuch gemacht aber bei betätigen der Pfeil Oben taste wird meine variable im Programm nicht erhöht.
hmm.. Code: [AUSKLAPPEN] Graphics 800,600,32,0 SetBuffer BackBuffer() Const filename$="test.txt" Local datei% Global Level=1 Repeat Cls If FileType(filename)=1 Then datei=ReadFile(filename) Text 400,300, ReadInt(datei) CloseFile datei EndIf datei=WriteFile(filename) WriteInt datei,Level CloseFile datei If KeyHit (200) Level = Level +1 End If Until KeyHit(1) End EDIT: Sry habe den code vergessen^^ |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
soo
ich gebe dir aber den Tipp, dass du dich mit dem Code auseinandersetzen solltest, bevor du ihn komplett übernimmst. BlitzBasic: [AUSKLAPPEN] ;Verbessert |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
- Zuletzt bearbeitet von TimBo am Do, Apr 01, 2010 20:00, insgesamt einmal bearbeitet
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei mir kommt der Fehler Memory access violation
EDIT: OK habe es jetzt musste die datei selber erstellen |
||
- Zuletzt bearbeitet von Raiden93 am Do, Apr 01, 2010 19:54, insgesamt einmal bearbeitet
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
OpenFile
Auszug aus der BB-Hilfe hat Folgendes geschrieben: Achtung! Falls diese Ausgabedatei noch nicht existiert, dann kommt es bei einem Schreib-/Leseversuch zu einem Fehler. OpenFile ist darum besonders für Änderungen gut geeignet. Neue Dateien können sofort mit WriteFile geschrieben werden.
Mein Tipp sind Tutorials. Du hast selber gesagt, du verstehst es nicht. Wenn du dann im Tutorial was nicht verstehst, kannst du ja fragen, aber es gibt durchaus gute. mfg Thunder |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast du die Datei name.ini angelegt ? | ||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
der Code von Timbo ist gut und funktioniert einwandfrei nur habe ich nun noch ein par fragen zum Code:
Was bedeutet die 0 in diesem code und warum kann ich mit einem ":" das Cls nutzen? Code: [AUSKLAPPEN] Graphics 1024,768,32,2 SetBuffer BackBuffer() Local timer=CreateTimer(60) Local SpeicherDatei = OpenFile("name.ini") Global Level%=LadeVar(SpeicherDatei, 0) Repeat Text 10,10,Level If KeyHit(200) Level=Level+1 SpeicherVar(SpeicherDatei, 0, Level) EndIf WaitTimer(timer) Flip(0):Cls Until KeyHit(1) Function SpeicherVar(File, Position, Wert) SeekFile File,0 WriteInt File,Wert End Function Function LadeVar(File, Position) SeekFile File,0 Return ReadInt(File) End Function |
||
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
entschuldigung, habe einen Fehler gemacht , der neue Code ist oben reineditiert.
Code: [AUSKLAPPEN] SeekFile File,0
wurde durch Code: [AUSKLAPPEN] SeekFile File,Position
ersetzt : ist eine Alternative zum Zeilenumbruch |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
- Zuletzt bearbeitet von TimBo am Do, Apr 01, 2010 20:01, insgesamt einmal bearbeitet
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die 0 wird von seinen Funktionen verwendet um an die jeweilige Position zu springen. In dem Fall also 0 (=Anfang der Datei).
Der ":" ist in BB ein Ersatz für den Zeilenumbruch. D.h. Du könntest statt dem Doppelpunkt einfach einen Zeilenumbruch hineinschreiben - Das hat denselben Affekt. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sagt viel. Schalt den Debugger ein und gib die genaue Zeile und den richtigen Fehlernamen.
Edit: Wieso kommt das erst so spät an ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Raiden93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ist es möglich die ini so zu machen das ich Lesen kann was in der Ini steht damit ich verstehe wie es in der ini aussieht? | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group