Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gespeichertes Level laden. Level wird als TXT-Datei gespeich (https://www.delphipraxis.net/10713-gespeichertes-level-laden-level-wird-als-txt-datei-gespeich.html)

ISAS 23. Okt 2003 19:33


Gespeichertes Level laden. Level wird als TXT-Datei gespeich
 
Zuerst einmal. Beim Titel gehen nicht mehr Zeichen.

Ich habe einen Leveleditor gemacht, der auf einem DrawGrid funktioniert.
Nun speichere ich das Level als TXT-Datei. Wenn ich die öffne, steht:

[1_1]
visible=1
typ=1
[1_2]
visible=0
..

Aber das ist nicht so wichtig.

Hier ist der Quellcode für das Speichern zu einer Textdatei:

Code:
Code:
if savedialog1.execute then
 Data:=TIniFile.Create(savedialog1.Filename);

for i:=0 to max do
begin
 for j:=0 to max do
 begin
  if steine[i,j].Visible=True then
  begin

  Data.writeBool(IntToStr(i)+'_'+IntToStr(j),'visible',steine[i,j].visible);
  Data.writeInteger(IntToStr(i)+'_'+IntToStr(j),'typ',steine[i,j].typ);

  end;
 end;
Wie kann ich nun die Textdatei laden?? :gruebel:

mit Code:
Code:
if opendialog1.execute then
 Data:=TIniFile.Create(opendialog1.Filename);

for i:=0 to max do
begin
 for j:=0 to max do
 begin

  Data.readBool(IntToStr(i)+'_'+IntToStr(j),'visible',steine[i,j].visible);
  Data.readInteger(IntToStr(i)+'_'+IntToStr(j),'typ',steine[i,j].typ);

  end;
 end;
end;
gehts nicht :|

Christian Seehase 23. Okt 2003 19:38

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Moin ISAS,

wie steht's um Deine Englischkenntnisse?

Präziser: Was wäre das Gegenteil von write? ;-)

Mirilin 23. Okt 2003 19:40

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
:hi:

zum lesen müsstest du Read... und nicht Write... nehmen.

Noch ein Link

ISAS 23. Okt 2003 19:55

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Sorry, habs geändert. War nur falsch abgeschrieben, aber es funkt trotzdem nicht

Christian Seehase 23. Okt 2003 20:02

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Moin ISAS,

wenn Du das was Du aus der INI ausliest, nicht in eine Variable schreibst wird das wohl auch nichts ;-)

Die Write-Mehoden von TIniFile sind Prozeduren, die Read-Methoden Funktionen, letztere geben einen Wert zurück, der bei Dir aber im Nirvana landet. Der letzte Parameter beim Read gibt den Defaultwert an, der zurückgeliefert wird, falls in der angegebenen Section/Ident Kombination nichts steht.

ISAS 23. Okt 2003 20:17

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Ehrlich gesagt, versteh ich das schon, aber weiss nicht, wie ich das umsetzten soll :wall:

Mirilin 23. Okt 2003 20:25

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var ini: TIniFile;
begin
  ini:=TIniFile.Create('konfig.ini');
  try
    form1.left:=ini.ReadInteger('Fensterposition','Left',0);
    form1.top:=ini.ReadInteger('Fensterposition','Top',0);
  finally
    ini.free;
  end;
end;
Das Beispiel zum lesen, aus dem Tutorial von oben.


Delphi-Quellcode:
for i:=0 to max do
begin
 *for j:=0 to max do
* begin
*   steine[i,j].visible := Data.readBool(IntToStr(i)+'_'+IntToStr(j),'visible',True);
*   steine[i,j].typ    := Data.readInteger(IntToStr(i)+'_'+IntToStr(j),'typ',0);
* end;
end;

ISAS 30. Okt 2003 13:09

Re: Gespeichertes Level laden. Level wird als TXT-Datei gesp
 
Thnx, der Leveleditor und das in DelphiX geladene Level funktionieren wunderbar. :-D
Hab nur ein paar kleine Probleme, welche ich aber sicher auch noch bewältige :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 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