Variable zahl wird nicht in datei gespeichert

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

PacMani

BeitragDo, Apr 01, 2010 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinen?
Vielleicht so? https://www.blitzforum.de/foru...php?t=3463

Thunder

BeitragDo, Apr 01, 2010 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube er möchte nur Variablen in Dateien abspeichern Pac-Man.

@Raiden93: Sieh dir das mal an: http://www.file-upload.net/dow....html.html

Edit: Das ist nicht so kompliziert. Oder bezog sich das auf Pac-Man's Beitrag?
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am Fr, Apr 02, 2010 0:00, insgesamt einmal bearbeitet

Raiden93

BeitragDo, Apr 01, 2010 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber das sieht höchst kompliziert aus weil ich ja auch noch eine datei include habe.Ich möchte nicht mehr als 1 oder 2 variablen speichern.

TimBo

BeitragFr, Apr 02, 2010 8:51
Antworten mit Zitat
Benutzer-Profile anzeigen
benutze doch meine Code zum speichern und auslesen.
Um Integer zu speichern musst du bei der Position einfach um 4 Byte weitergehen.

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?


benutze halt WriteLine bzw. ReadLine
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

BeitragFr, Apr 02, 2010 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
jo bin fleißig am lernen und rum experimentieren Wink

Raiden93

BeitragFr, Apr 02, 2010 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Timbo kannst du versuchen mir dein Code aus zu kommentieren ? würde mir Helfen habe den Code jetzt schon fast auswendig gelernt aber es nützt mir nix wenn ich nicht weiß was passiert.

Holzchopf

Meisterpacker

BeitragFr, Apr 02, 2010 11:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Vermeide in Zukunft bitte Doppelposts und editiere stattdessen den letzten Beitrag mit dem Edit-Button (user posted image), der sich oben rechts an jedem deiner Beiträge befindet.

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

TimBo

BeitragFr, Apr 02, 2010 11:36
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

;Verbessert

;ganz normaler Standart
Graphics 1024,768,32,2;Bildschirmeinstellungen
SetBuffer BackBuffer();Für das Doublebuffering
Local timer=CreateTimer(60);damit das Programm mit 60 FPS laufen wird

;Öffnet deine Datei
Local SpeicherDatei = OpenFile("name.ini")

;Startet die Funktion LadeVar , als File setzte ich "SpeicherDatei" und als Position "0" ein.
Global Level%=LadeVar(SpeicherDatei, 0)


Repeat
;Malt den Wert von Level auf den Bildschirm
Text 0,0,Level

;Wenn die Pfeiltaste grdückt wird...
If KeyHit(200)
Level=Level+1;...wird levevel um eine natürliche Zahl erhöht
SpeicherVar(SpeicherDatei, 0, Level);& der neue Wert von Level wird gespeicher
EndIf


;Standart Grafik Zeugs
WaitTimer(timer)
Flip(0):Cls
Until KeyHit(1)

;Speichervar soll Informationen in eine Datei speichern.
;dazu muss sie wissen, in welche Datei, sie wo, was hinschreiben soll
Function SpeicherVar(File, Position, Wert)
SeekFile File,Position;Springt in der gewünschten Datei an den gewünschten Ort
WriteInt File,Wert ;Speichert in der gewünschten Datei den gewünschten Wert abb
End Function

;LadeVar soll Informationen aus einer Datei einlesen können,
;dazu braucht die Funktion die Information darüber , in welcher Datei sie WO was suchen soll
Function LadeVar(File, Position)
SeekFile File,Position;springt in der Datei an die gewollte Position -> Speicherdatei,0
Return ReadInt(File) ;liest einen Integer aus
End Function

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

BeitragFr, Apr 02, 2010 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
danke und werde ich machen

Edit:
Mann ey es ist sau schwer ich habe jetzt mein ganzen Tag damit verbracht und ich kriege es nicht auf die reihe ......

Raiden93

BeitragFr, Apr 09, 2010 0:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich jetzt z.b 2 Variablen speichern und laden will also gleichzeitig wie soll ich das dann machen?

das wurgel

BeitragFr, Apr 09, 2010 1:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das gleiche, nur zweimal und beim 2. Mal setzt du bei Position 4 ein anstatt 0.
4, weil die Funktion einen Integer schreibt und Integer 4 bytes verbrauchen. Wenn du 3 Variablen speichern willst setzt du bei der 3. acht ein usw.
1 ist ungefähr 3

Raiden93

BeitragFr, Apr 09, 2010 2:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich danke dir habs also 1 variable ist bei mir ne 0 bei der 2 eine 4 und bei der 3 eine 8 stimmt so oder?

Midimaster

BeitragFr, Apr 09, 2010 8:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei so kleinen Datenmengen ist eine "lesbare" INI echt vorteilhafter.

In meinem Tutorial "INI Lesen" erfährst Du, wie man eine bereits bestehene INI-Datei von BlitzBasic aus liest. Dort findest Du aber auch ein supereinfaches Modell, das für Datenmengen bis 30 Zeilen völlig ausreichend ist.

Was allerdings dort (in einer Zeilen basierten Datei) so dann nicht funktioniert , ist das direkte Anspringen einer exakten Position mit FILESEEK. Das heißt für Dich, alles neue schreiben. Aber das Ergebnis wird dir sicher besser gefallen, als deine aktuelle Version. Und du musst dich nicht mehr mit den unterschiedlichen Längen der unterschiedlichen Variablen-Typen rumrechnen

Beim Schreiben einer solchen INI-Datei wird jedesmal, wenn ein Wert zu speichern ist, die gesamte Datei komplett geschrieben. Solange Du unter 1000 Zeilen bleibst Laughing , spürst du keinen Zeitverbrauch!!!

Eine super-vereinfachte INI kennt nur Werte-Zeilen und keine Kapitel-Überschriften:

Zitat:
Peter
100
56.90
...


Dieses Modell kommt ohne einen Bezeichner aus, anhand dem du den gesuchten Eintrag leichter finden könntest. In einem so einfachen Modell steht einfach der gesuchte Eintrag immer in der gleichen Zeile. Die Zeile kann ein Text, eine Integer-Zahl, oder ein Fließkommazahl sein. Dadurch, dass alle 3 Variablentypen in der Datei wie ein Text gespeichert werden, lässt sich die Datei SUPERSCHÖN von einem Text-Editor lesen und bearbeiten.


Du liest am besten dazu die Kapitel I und II aus meinem Datei-Lesen-Tutorial.
https://www.blitzforum.de/foru...hp?t=33651

Hier ist das Ergebnis dieser beiden Kapitel:


Das Lesen der INI-Datei

BlitzBasic: [AUSKLAPPEN]

Global Name$, Alter%, Geld#,Datei$

Datei="Test.txt"
AlleDatenLesen()

Print "Name: "+ Name
Print "Alter: " + Alter
Print "Vermögen: " + Geld + " EUR"
WaitKey()
End


Function AlleDatenLesen()
If FileExists(Datei$) Then
Local DateiHandle%
DateiHandle=ReadFile(Datei)
Name=ReadLine(DateiHandle)
Alter=ReadLine(DateiHandle)
Geld=ReadLine(DateiHandle)
CloseFile DateiHandle
EndIf
End Function



Was Dir jetzt noch fehlt, ist das Gegenstück dazu:

Das Abspeichern

BlitzBasic: [AUSKLAPPEN]
Function AlleDatenSchreiben()
If FileExists(Datei$) Then
Local DateiHandle%
DateiHandle=WriteFile(Datei)
WriteLine DateiHandle,Name
WriteLine DateiHandle,Alter
WriteLine DateiHandle,Geld
CloseFile DateiHandle
EndIf
End Function


Und schon ist Schluss mit den Kompliziertheiten!


Ausblick:

Wenn Du dieses Modell wirklich komplett verstanden hast, kannst Du für eines deiner nächsten Projektel einmal einen Blick auf ein etwas schöner INI-Modell werfen. Hierbei erhalten die Daten-Zeilen auch einen Bezeichner, anhand dem man best. Einträge suchen kann.


Zitat:
Name=Peter
Leben=100
Geld=56.90
...


Der Vorteil besteht darin, dass man beim Lesen der INI-Datei in einem Text-Editor einen besseren Überblick behält. Außerdem ist es egal, in welcher Zeile ein Eintrag steht. Er wird ja jetzt über den Bezeichner gefunden.

Hierzu liest Du Kapitel III aus meinem Tutorial

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group