Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Charaktereinlesung Für D&D - stat. Array (https://www.delphipraxis.net/116589-charaktereinlesung-fuer-d-d-stat-array.html)

Halbgard 2. Jul 2008 16:56


Charaktereinlesung Für D&D - stat. Array
 
Hallo Leute!
Ich hab mich erst vor ein paar Tagen angemeldet und kenn mcih noch nicht ganz aus, aber ich hoffe mal, dass das Thema in dieser Rubrik nciht falsch ist :)

okai, also ich bin gerade beim selbstbeibringen und lese halt einige Tutorials, und nun bin ch bei den Arrays angekommen.
Da dacht ich mir, ich könnt soetwas fürs Rollenspiel benutzen, also die Werte, das Lvl, das Gepäck und die Erfahrungspunkte eines NPCs in soein array hineinschreiben könnte, damit ich sie später benutzen kann.
Nun hab ich aber nicht wirklich foren oder tutorials gefunden, wo erklärt ist, wie man das macht, wie ich das haben will (logisch, ich weis...^^")

Delphi-Quellcode:
{$R *.nfm}

var Giveoutplace:TFileStream;
    chararray1:array [0..11] of string;

procedure TForm1.Button1Click(Sender: TObject);
var abentname,vorname,nachname,gepaeck:String;
    lvl,Staerke,Geschick,Konstitution,Weisheit,Intelligenz,Charisma,erfahrungspunkte:Integer;

begin
 abentname:=(editabent.text);
 vorname:=(vorn1.text);
{ nachname:=(nachn1.text);
 lvl:=strToInt(editlvl1.text);
 staerke:=strToInt(str1.text);
 geschick:=strToInt(ges1.text);
 konstitution:=strToInt(kon1.text);
 weisheit:=strToInt(wei1.text);
 intelligenz:=strToInt(int1.text);
 charisma:=strToInt(cha1.text);
 gepaeck:=(gep1.text);
 erfahrungspunkte:=strToInt(ep1.text);} //müsste überflüssig sein...

 chararray1[0]:=abentname;
 chararray1[1]:=vorname;
 chararray1[2]:=nachname;
 chararray1[3]:=editlvl1.text;
 chararray1[4]:=str1.text;
 chararray1[5]:=(ges1.text);
 chararray1[6]:=(kon1.text);
 chararray1[7]:=(wei1.text);
 chararray1[8]:=(int1.text);
 chararray1[9]:=(cha1.text);
 chararray1[10]:=(gep1.text);
 chararray1[11]:=(ep1.text);

{soltle zum erstellen einer Datei sein, wo es reingeschrieben wird}
 giveoutplace:=tfilestream.create('C:\Dokumente und Einstellungen\User\Desktop\Eigene Datein\Rollenspiel\unten\Abenteuerdelphi\'+Abentname+'\'+Vorname, fmOpenRead or fmShareDenyWrite);
{sollte zum einlesen n die entstandene Datei sein, is aber komplett falsch...}
giveoutplace(chararray1):='C:\Dokumente und Einstellungen\User\Desktop\Eigene Datein\Rollenspiel\unten\Abenteuerdelphi\'+Abentname+'\'+Vorname;
end;

end.
so ungefähr sieht das aus.
ich möchte halt die werte alle einlesen, und dann in nem ordner als irgendeine datei speichern (ja, das müsste mir auch fehlen...^^"), sodass ich sie später wieder auslesen kann
Weil ich die Charaktere nicht alle in den gleichen Ordner packen woltle, dachte ich mir, dass ich für jeden einen neuen ordner erstelle, also dann im Ordner (...\abentname+'\'+Vorname) abspeichern.
Das ergebnis würd ich dann zu gegebener zeit gerne wieder aufrufen, aber den Teil würd ich dann alleine machen, wenn ich das hier verstanden habe :)

okai, also ich hoffe das ihr (die das lest [grammatisch richtig?]) das versteht und mir antworten könnt :)
bräuchte hilfe, die ich auch verstehe und nicht abpinsel :)
wenn ihr irgendwelche links postet, wo das auch erklärt ist, wär ich auch dankbar :)

ich bin noch nicht soweit in delphi, und wenn ich erstmal andere sachen machen soltle (im falle das ihr mich tadelt weil ich alles falsch mache und sowas...) würd ich später damit weitermachen und erstmal an anderen stellen weitermachen
aber ich woltl mir selbst ein praktisches beispiel für arrays basteln, wo ich auch verstehe weshalb dort fmOpenRead or fmShareDenyWrite steht

nun gut, jetz schonmal danke für antworten
(und bitte nicht zu sehr tadeln xD)

Halbgard

(aso, noch ein frage
alle haben delphi für win32
is es etwa nich so gut, wenn man delphi.net für windows nimmt??)
(hatte die frage eben überhaupt einen zusammenhang in sich *smilie mit fragezeichen auf dem kopf* ???)

Khabarakh 2. Jul 2008 18:15

Re: Charaktereinlesung Für D&D - stat. Array
 
Zitat:

Zitat von Halbgard
(aso, noch ein frage
alle haben delphi für win32
is es etwa nich so gut, wenn man delphi.net für windows nimmt??)

Kurz gefasst: Da du im Win32-"Stil" programmierst, macht es keinen Sinn, etwas anderes als Delphi.Win32 zu benutzen.

mimi 2. Jul 2008 20:48

Re: Charaktereinlesung Für D&D - stat. Array
 
du könntest es per Forschleife machen:
Delphi-Quellcode:
  for i:=0 to 11 do begin
    chararray1[i]:=''
  end;
wobei wenn ich deine Variablen richtig deute könnte es so besser aussehen:
Delphi-Quellcode:
type
  Tchararray = record
    vorname, nachname:String;
    ...*
  end;
*Die anderen Felder sagen mir nix.

jetzt könntest du ihn so verwenden für deine verschiedene Charr's:
Delphi-Quellcode:
var
  CharArray1:array[0..11] of Tchararray
procedure ... begin
<-  lese aus Datei ein ->
  for i:=0 to 11 do begin
    CharArray1[i].vorname:='Nase';
  end;
end;
Ich hoffe du kannst mein Beispiel nach vollziehen. Es ist nur eine Vorlage.
schau dich doch noch mal hier um:
http://www.delphi-treff.de/sprachen/object-pascal/
Später kannst du dann statt Record auch klassen nutzen. Sind viel "besser"*G*.
für das lesen aus einer Datei könntest du ganz einfach TIniFile nehmen:
Dann kannst du auch alle Charaktere in einer Datei packen mit unterschiedlichen Sektionen. und nur noch die Grafiken in unterschiedliche Ordner oder so. je nach dem.

vsilverlord 2. Jul 2008 20:55

Re: Charaktereinlesung Für D&D - stat. Array
 
Gute Idee Mimi, so würde ich das auch machen

DeddyH 2. Jul 2008 21:08

Re: Charaktereinlesung Für D&D - stat. Array
 
Zitat:

Delphi-Quellcode:
for i:=0 to 11 do begin
    chararray1[i]:=''
  end;

Das könnte man IMHO auch durch FillChar bzw. ZeroMemory ersetzen ;)

mimi 2. Jul 2008 21:18

Re: Charaktereinlesung Für D&D - stat. Array
 
naja ich dachte das er dort was rein schreiben wollte. Es also nicht auf NIL setzten möchte. darum '' evlt. währe '...' besser gewesen *G*

Halbgard 3. Jul 2008 05:10

Re: Charaktereinlesung Für D&D - stat. Array
 
Cool, danke! :)

ich probiers dann mal aus^^


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