Einzelnen Beitrag anzeigen

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, 19: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