AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Objekt und Filestream... Wie Passt Daaas???
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt und Filestream... Wie Passt Daaas???

Ein Thema von LDericher · begonnen am 10. Jul 2007 · letzter Beitrag vom 11. Jul 2007
Antwort Antwort
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#1

Objekt und Filestream... Wie Passt Daaas???

  Alt 10. Jul 2007, 18:45
Delphi-Quellcode:
var fs:TFileStream;
begin
Raum.Short:='Caravan';
Raum.Long.Text:='Ein ziemlich abgenutzter Caravan';
  try
     begin
     fs:=TFileStream.Create(dir+'\data\rooms\caravan.ro', fmCreate or fmShareDenyNone);
     fs.Write(Raum, SizeOf(Raum));
     end;
  finally fs.Free;
  end;

Raum.Short:='';
Raum.Long.Text:='';

  try
    begin
    fs:=TFileStream.Create(dir+'\data\rooms\'+Figur.LOC, fmOpenRead or fmShareDenyNone);
    fs.Read(Raum, SizeOf(Raum));
    end;
  finally fs.Free;
  end;
end;

Ausgabe.Text:=Raum.Short +#13#10+#13#10
             +Raum.Long.Text+#13#10+#13#10
             +Ausgabe.Text;
Das ganze gehört in ein Spiel und soll einen Raum laden
(Zumindest diese Funktion des Raum-Ladens testen, aber im Memofeld'Ausgabe' steht nach Ausführen dieses Codes gar nichts, bis auf 4 Zeilenumbrüche...)

Aber wie zum Teufel lädt man ein Objekt richtig aus einer Datei?
Und wie zum Teufel speichert man ein Objekt richtig in eine Datei?

Mein Raum-Objekt sieht folgendermaßen aus:
Delphi-Quellcode:
type TRaum=class
           Short:string; //Beschreibungen
           Long,
           Trigger_Info,
           Give_Info:TStringList;

           //1=Norden
           //2=Osten
           //3=Süden
           //4=Westen
           Exit_true:array[1..4]of boolean;
           Exit:array[1..4]of string[255];

           IsNPC:boolean;
           NumNPCs:ShortInt;
           NPC:array[1..10]of string[255];
           NPCList:TStringList;

           IsMonsterLock:boolean;
           MonsterLock:string[255];

           constructor Create;
           procedure GoExit(Ausgang:integer; Raum:TRaum; Ausgabe:TMemo; Go:array of Tleer_Button);
           procedure GetNPC;
           procedure GoIn(Raum:TRaum; Ausgabe:TMemo; Go:array of Tleer_Button);
           function Kampf(Enemy:string):boolean;
           function SearchString(SearchIn:String;
                    SearchFor:TStringList):TIntBool;
           function Analyze_Input(Input:string):string; //Rückgabewert=Output
           end;

Für weitere (detailliertere) Fragen zu meinem Problem bin ich immer offen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Objekt und Filestream... Wie Passt Daaas???

  Alt 10. Jul 2007, 19:08
So geht das mal nicht.

Du musst schon jede Variable selber speichern. Am besten ist, du machst dir im dem Raum zwei Methoden die alle Variablen in einen Stream speichern bzw. laden.

Ich habe zwar hier eine Funktion, die automatisch alle Variablen einer Klasse speichern kann, allerding speichert sie deine TStrings nicht mit.

Ich bin zwar grad dabei eine Klasse zu schreiben, von der man dann ableiten kann, die dann schon eine speichern und laden Methode mitbringt. Aber mir fehlt grad die Zeit das zu Ende zu bringen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von LDericher
LDericher

Registriert seit: 29. Jan 2007
Ort: Erkelenz
224 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Objekt und Filestream... Wie Passt Daaas???

  Alt 11. Jul 2007, 10:13
Ich werde das so schreiben, dass ich eine speichern/laden Methode implementiere, die über einen temporären Record läuft.

Die StringListen kann ich dann ja per loadfrom/savetofile direkt in diesen Methoden speichern

________________________________
*bääääääääääm*
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:01 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