[gelöst] Variablenwerte in txt.-Datei speichern
[gelöst] Variablenwerte in txt.-Datei speichern
Guten Abend,
Ich schreibe zur Zeit ein weiteres Spiel mit Lazarus und würde gern die Möglichkeit einfügen, einen Spielstand mittels txt.-Datei abzuspeichern und wieder zu laden.
Ist das mit Lazarus möglich?
Danke im Voraus!
MTB1Leo
Ich schreibe zur Zeit ein weiteres Spiel mit Lazarus und würde gern die Möglichkeit einfügen, einen Spielstand mittels txt.-Datei abzuspeichern und wieder zu laden.
Ist das mit Lazarus möglich?
Danke im Voraus!
MTB1Leo
Zuletzt geändert von MTB1Leo am Mo 3. Nov 2014, 12:45, insgesamt 1-mal geändert.
750GB HDD CPU: i3 boost 3.6Ghz RAM: 12GB GPU: ASUS RADEON R7 270X DC II
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Variablenwerte in txt.-Datei speichern
Ja.
Jetzt überlegst dir noch mal, wie deine Frage lauten sollte.
Ein paar Tipps: Wer, Was, Warum, Wie, Wie viele, wann, wohin, wie oft, wo mit ...
Jetzt überlegst dir noch mal, wie deine Frage lauten sollte.
Ein paar Tipps: Wer, Was, Warum, Wie, Wie viele, wann, wohin, wie oft, wo mit ...
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Variablenwerte in txt.-Datei speichern
^^
Ich würde gern wissen wie das geht und wie der Programmcode dafür grundsätzlich aussehen muss.
MTB1Leo
Ich würde gern wissen wie das geht und wie der Programmcode dafür grundsätzlich aussehen muss.
MTB1Leo
750GB HDD CPU: i3 boost 3.6Ghz RAM: 12GB GPU: ASUS RADEON R7 270X DC II
Re: Variablenwerte in txt.-Datei speichern
Es gibt eine Menge unterschiedlicher Möglichkeiten, um so etwas zu realisieren. In welcher Form liegen denn Deine Spielstandsdaten vor? Wann sollen diese wie gespeichert werden?
mögliche Hilfen:
http://wiki.lazarus.freepascal.org/Howto_Use_TSaveDialog/de
http://wiki.freepascal.org/XML_Tutorial/de#Erzeugen_einer_XML-Datei
http://wiki.freepascal.org/File_Handling_In_Pascal
mögliche Hilfen:
http://wiki.lazarus.freepascal.org/Howto_Use_TSaveDialog/de
http://wiki.freepascal.org/XML_Tutorial/de#Erzeugen_einer_XML-Datei
http://wiki.freepascal.org/File_Handling_In_Pascal
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Re: Variablenwerte in txt.-Datei speichern
MTB1Leo hat geschrieben:^^
Ich würde gern wissen wie das geht und wie der Programmcode dafür grundsätzlich aussehen muss.
Die Art wie du fragst lässt darauf schliessen, dass zu vielleicht erstmal einen Einführungskurs machen solltest.
Dafür ist das Forum nicht da.
Trotzdem wären für deine Zwecke IniFiles wahrscheinlich das richtige:
http://wiki.freepascal.org/Using_INI_Files/de
http://www.delphi-treff.de/tutorials/da ... dateien/2/
Re: Variablenwerte in txt.-Datei speichern
Ich würde das so machen -> http://wiki.freepascal.org/TXMLPropStorage/de
Ist die beste Lösung finde ich!
Ist die beste Lösung finde ich!
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Variablenwerte in txt.-Datei speichern
@Lion: Ob das die beste Lösung ist, kann man gar nicht wissen. Dafür sagt der OP leider viel zu wenig aus. Gerade beim Speichern von Spielständen wäre TXMLPropStorage nicht unbedingt meine erste Wahl. Häufig will man ja nicht Eigenschaften von Komponenten speichern, sondern Spieldaten.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Variablenwerte in txt.-Datei speichern
Ok... eignet sich etwa eine DB besser dafür, z.B. die SQLite DB?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Variablenwerte in txt.-Datei speichern
Klare Antwort: Das kommt darauf an.
Ich bin immer wieder erstaunt darüber, wie wenig Informationen in eine Anfrage gepackt werden. Und was für konkrete Antworten erwartet (und manchmal auch gegeben) werden. Diese Frage gehört auch dazu.
Wir wissen folgendes: Der OP möchte ein Spiel schreiben und er will wissen wie man den Spielstand speichert.
Was könnte man sich dazu überlegen?
Beispiel 1: Es geht um ein Zahlenratespiel. Der Computer "denkt sich eine Zahl aus", der Spieler muss sie in X Versuchen erraten.
Was muss man speichern? Die Zahl und die Anzahl der offenen Versuche.
Dafür kann man getrost eine Textdatei mit zwei Zeilen benutzen.
Beispiel 2: Eine super-realistische Militärsimulation. Es sollen sechs Divisionen auf dem Schlachtfeld antreten.
Wir speichern zu jedem Soldaten Gesundheitsdaten (Fitness, Verletzungswerte), Intelligenz, mitgeführte Handfeuerwaffen, Munitionsbestand, Position auf dem Gefechtsfeld, etc.
Das bedeutet bei sechs Divisionen 6 * 20.000 = 120.000 Datensätze für die Soldaten. Plus Zustand, Munition, Treibstoff, etc. für alle Fluggeräte, Panzer, Transporter und so weiter.
In diesem Fall wäre eine Datenbank sicher keine schlechte Idee.
Und zwischen diesen beiden Beispielen, gibt es noch unzählige Möglichkeiten.
Das Problem ist nur: Niemand weiß, was der OP für ein Spiel machen will, denn er sagt es uns nicht. Diese Art der Fragestellung ist vergleichbar mit einem Menschen der zum Arzt geht, die Hose herunterlässt, einen Haufen auf den Schreibtisch setzt und sagt: "Herr Doktor, verschreiben Sie mir etwas gegen meine Krankheit."
Ich bin immer wieder erstaunt darüber, wie wenig Informationen in eine Anfrage gepackt werden. Und was für konkrete Antworten erwartet (und manchmal auch gegeben) werden. Diese Frage gehört auch dazu.
Wir wissen folgendes: Der OP möchte ein Spiel schreiben und er will wissen wie man den Spielstand speichert.
Was könnte man sich dazu überlegen?
Beispiel 1: Es geht um ein Zahlenratespiel. Der Computer "denkt sich eine Zahl aus", der Spieler muss sie in X Versuchen erraten.
Was muss man speichern? Die Zahl und die Anzahl der offenen Versuche.
Dafür kann man getrost eine Textdatei mit zwei Zeilen benutzen.
Beispiel 2: Eine super-realistische Militärsimulation. Es sollen sechs Divisionen auf dem Schlachtfeld antreten.
Wir speichern zu jedem Soldaten Gesundheitsdaten (Fitness, Verletzungswerte), Intelligenz, mitgeführte Handfeuerwaffen, Munitionsbestand, Position auf dem Gefechtsfeld, etc.
Das bedeutet bei sechs Divisionen 6 * 20.000 = 120.000 Datensätze für die Soldaten. Plus Zustand, Munition, Treibstoff, etc. für alle Fluggeräte, Panzer, Transporter und so weiter.
In diesem Fall wäre eine Datenbank sicher keine schlechte Idee.
Und zwischen diesen beiden Beispielen, gibt es noch unzählige Möglichkeiten.
Das Problem ist nur: Niemand weiß, was der OP für ein Spiel machen will, denn er sagt es uns nicht. Diese Art der Fragestellung ist vergleichbar mit einem Menschen der zum Arzt geht, die Hose herunterlässt, einen Haufen auf den Schreibtisch setzt und sagt: "Herr Doktor, verschreiben Sie mir etwas gegen meine Krankheit."
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Variablenwerte in txt.-Datei speichern
Also ich gehe davon aus, dass bei so einer "Anfängerfrage" es sich nur um ein einfaches Spiel handeln kann, daher eine einfache Lösung von mir. Als guter Dr. Prof. Arzt erkenne ich das sofort.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Variablenwerte in txt.-Datei speichern
Könntest du deine Empfehlung dann bitte noch begründen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6204
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Variablenwerte in txt.-Datei speichern
Wieso so kompliziert, ein einfache Write/Read reicht hier vollkommen.
Wen deine Daten zwingend im Text-Format vorliegen müssen dann musst jeden Wert einzeln mit Writeln schreiben und mir Readln wieder einlesen.
Wen deine Daten zwingend im Text-Format vorliegen müssen dann musst jeden Wert einzeln mit Writeln schreiben und mir Readln wieder einlesen.
Code: Alles auswählen
type
TSpielstand = record // Struktur Deiner Spieldaten
Level, Leben, Munition: integer;
end;
{ TForm1 }
TForm1 = class(TForm)
Edit1: TEdit;
save: TButton;
load: TButton;
procedure loadClick(Sender: TObject);
procedure saveClick(Sender: TObject);
private
public
Spielstand: TSpielstand; // Deine Daten
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.saveClick(Sender: TObject);
var
f: file of TSpielstand;
begin
Spielstand.Level := StrToInt(Edit1.Text);// Dies währe der aktuelle Level
AssignFile(f, 'spielestand.dat');
Rewrite(f);
Write(f, Spielstand); // Daten schreiben
CloseFile(f);
end;
procedure TForm1.loadClick(Sender: TObject);
var
f: file of TSpielstand;
begin
AssignFile(f, 'spielestand.dat');
Reset(f);
Read(f, Spielstand); // Daten laden
CloseFile(f);
Edit1.Text := IntToStr(Spielstand.Level); // Daten prüfen
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Variablenwerte in txt.-Datei speichern
Vielen Dank, Mathias!
750GB HDD CPU: i3 boost 3.6Ghz RAM: 12GB GPU: ASUS RADEON R7 270X DC II
-
- Beiträge: 6204
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: [gelöst] Variablenwerte in txt.-Datei speichern
Code: Alles auswählen
type
TSpielstand = record
Name: ShortString;
Name2: String[255]; // 2. Variante
Level, Leben, Munition: integer;
end;
Wen noch Stringe gespeichert werden, musst du diese wie oben deklarieren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot