AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmzustand speichern und laden

Ein Thema von Madeleine · begonnen am 3. Jan 2003 · letzter Beitrag vom 4. Mai 2003
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Madeleine

Registriert seit: 27. Dez 2002
31 Beiträge
 
#1

Programmzustand speichern und laden

  Alt 3. Jan 2003, 15:42
Hi,
hab da natürlich mal wieder ne Frage und zwar...
Was würdet ihr empfehlen, um einen bestimmten Zustand eines Programms (z.b.: einen Spielzustand 8) ) zu speichern und dann auch wieder laden zu können. Ich habe etwas von INI-Dateien gehört, was haltet ihr davon und vielleicht könnt ihr mir auch ein paar Tips geben!

Dann schonma Danke im Voraus!
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#2
  Alt 3. Jan 2003, 15:56
Hallo Madeleine, da würde ich dir tatsächlich zu einer INI Datei raten. Die sind recht einfach zu handhaben. Gehe ich richtig davon aus, dass du den Spielstand aus deinem "4 gewinnt" Spiel speichern willst? Wenn ja sollten für dich die Methoden TIniFile.WriteInteger und TIniFile.ReadInteger besonders interessant sein, da du den Zustand eines Spielfeldes ja als Integer speicherst. Guck dir diese Methoden, und TIniFile allgemein doch mal in der Delphi OH an, wenn du Fragen hast schreib ich dir auch gerne (ich bin sicher die anderen auch ) ein Beispiel.

Gruß, Sebastian
  Mit Zitat antworten Zitat
Madeleine

Registriert seit: 27. Dez 2002
31 Beiträge
 
#3
  Alt 3. Jan 2003, 19:29
naja.. ein kleines beispielchen wär schon nicht schlecht!
Da ich ja ein DrawGrid oder StringGrid verwende, gibt es da noch etwas zu beachten?
Gruß Madeleine
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 3. Jan 2003, 20:05
Werte speichern
Delphi-Quellcode:
procedure TfrmMaim.SaveValues;
begin
  with TIniFile.Create('game.ini') do
  try
    WriteString('info', 'Letzter Spieler', FLastPlayer);
    WriteInteger('highscore', 'Beste Punktzahl', FHighScore);
  finally
    Free;
  end;
end;
Werte laden
Delphi-Quellcode:
procedure TfrmMaim.LoadValues;
begin
  with TIniFile.Create('game.ini') do
  try
    FLastPlayer := ReadString('info', 'Letzter Spieler', '');
    FHighScore := ReadInteger('highscore', 'Beste Punktzahl', 0);
  finally
    Free;
  end;
end;
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Madeleine

Registriert seit: 27. Dez 2002
31 Beiträge
 
#5
  Alt 3. Jan 2003, 21:09
das habe ich schon so ungefähr verstanden, aber mir ist immer noch keine Idee gekommen, wie man das mit einem zweidimensionalen und auch noch dynamischen Array macht!
Geht das überhaupt?

thx
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#6
  Alt 3. Jan 2003, 21:15
Ganz einfach: In zwei Schlüsseln speicherst du die Größe des Arrays.
Dann brauchst du noch für jede Zelle nen Schlüssel und das ganze einfach über zwei Schleifen in die Ini speichern.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#7
  Alt 3. Jan 2003, 21:17
Hi!
Das ganze einfach in einem Stream speichern
Delphi-Quellcode:

//Für {ArrayTyp} setzt du den Array ein den du nutzt

procedure SaveArrayToStream(Array: {ArrayTyp});
var f: TFileStream;//Der Stream in dem wir das ganze speichern

begin
  try
    //Zuerst gucken ob es schon diese Datei gibt, Dateiname kann ja frei gewählt werden
    f := TFileStream.Create('C:\MeinArray.dat', fmOpenReadWrite);
  except
    //Wenn nein, erzeugen wir ihn schnell
    f := TFileStream.Create('C:\MeinArray.dat', fmCreate);
  end;
    //Der Prozedur übergebene "Array" wird in den Stream gespeichert
  f.WriteBuffer(Array, SizeOf(Array));
    //Der FileStream wird freigegeben
  f.Free;
end;
Code ohne gewähr, hab ihn nicht getestet, dürfte aber vom Theoretischen her funzen
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Madeleine

Registriert seit: 27. Dez 2002
31 Beiträge
 
#8
  Alt 4. Jan 2003, 20:40
ok, danke, aber wie programmiert das ganze so, das man auch die Möglichkeit hat, mehrere Dateien zu speichern, das geht bei mir nämlich noch nicht!?!
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#9
  Alt 4. Jan 2003, 20:47
Du kannst doch den Dateinamen frei wählen. Wenn du dann das ganze mehrmals machst, und verschiedene Dateinamen wählst, dann werden auch verschiedene (also mehrere) Dateien gemacht.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Madeleine

Registriert seit: 27. Dez 2002
31 Beiträge
 
#10
  Alt 4. Jan 2003, 21:17
na das ist es ja, ich gebe dem einen anderen Namen, rufe ich dann die alte Datei auf mit dem alten Namen, ist das neue dort eingespeichert!
...ganz komisch...
Hab mal mein Spiel angehängt, falls es jmd ausprobieren will
in Unit1 steht der Code dazu (ganz unten)
..ich werde mal weiter grübeln...
Angehängte Dateien
Dateityp: zip viergewinnt.zip (326,0 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz