Entwickler-Ecke

Dateizugriff - Wie die Daten am besten Speichern?


Boromir - Mo 17.02.03 20:38
Titel: Wie die Daten am besten Speichern?
Hi,

ich programiere gerade ein Spiel! (Weltraum) ! Und nun möchte ich das man sich verschiedene Schiffe beim kaufen ansehen kann! D.H. ich muss alle Daten der Schiffe speichern! Anfangs wollte ich das alles in ein Array schreiben, aber ich weiß nicht so genau, ob das so eine gute Lösung ist?

Hat irgendjemand eine Idee, wie man sone Daten am besten Abspeichern kann?

Danke


DaRkFiRe - Mo 17.02.03 21:07

Welche Daten hast Du denn!? Ich plädiere jetzt schonmal auf ein selbst-definiertes Dateiformat ODER Records!


Boromir - Mo 17.02.03 21:12
Titel: Text
Eigentlich sind es nur Arrays mit Text!
Text reicht vollkommen aus!


GruppeCN - Mo 17.02.03 21:13

Wie wärs, wenn du einfach alle Sachen für ein Schiff in eine Textdatei speicherst und diese dann mittels Delphi mit einer anderen Endung versiehst(kannst auch gleich ein Programm zum schreiben aller Infos erstellen). Dann kannst du alles so lesen:


Quelltext
1:
var schiff: TStringList;                    



Quelltext
1:
2:
3:
4:
5:
6:
7:
function auslesen(datei: String;nummer: Integer): String;
begin
  schiff := TStringList.Create;
  schiff.LoadFromFile(datei);
  result := schiff[nummer];
  schiff.Free;
end;


Aufruf:

Quelltext
1:
wasweissich := auslesen(schiffeins.aaa,5);                    


Boromir - Mo 17.02.03 23:43

Wie muss ich denn die Textdatei aufbauen, damit ich diese einlesen kann?

Kann ich einfach alle Strings durch ein Leerzeichen getrennt hintereinander schreiben?

Es muss doch eine bestimmte Reihenfolge geben, damit die TStringList weiß welches Schiff angewählt wird?


Fred Ferkel - Di 18.02.03 06:39

jedes schiff samt den anderen infos in eine zeile ya sonst ist schmutz! ;)
cya


FBrk - Di 18.02.03 11:33
Titel: warum nicht gleich ordentlich
Es ist doch wesentlich sinnvoller eine Typisierte datei zu nehmen, da du sicher nicht nur Text sondern auch irgenwann Spielrelewante daten über die Schiffe speichern möchtest.

z.B.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Type
  TSchiff = record
    SchiffNr : byte; // zur eindeutigen identifizirung
    name : String[40]; // Name
    lange : word;  // länge des Schiffes
    breite : word; // breite -"-
    Tiefgang : byte; // :)
    speed : integer;
    Beschreibung : String [255]; // bei bedarf kann man ja ein array of String machen.
  end;

Strings müssen in der Länge begrenzt werden.

Um nun in der Date zu navigieren solltest du dir mal die hilfe zu "seek" angucken

Ach ja,... man kann auch eine Class erstellen für die SchiffDaten. Das macht sogar sinn, da man in Klassen Vererben kann und somit eingenschaften wie z.B. Dasvortbewegen immer übernehmen kann.
Aber das war ja nicht gefragt :)

Moderiert von user profile iconTino: Code-Tags hinzugefügt.