AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laufendes Programm Speichern (savetofile)

Ein Thema von Sirlunchalot · begonnen am 7. Mär 2009 · letzter Beitrag vom 7. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#1

Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 15:27
Da ich nocht nicht allzu viel Programmiererfahrung habe, aber trotzdem daran sitze ein Minibrowsergame zu programmieren, bräuchte ich mal eure Hilfe
Ich brauche die korrekte Syntax für den record type und anschließend die Syntax fürs Speichern in einer Datei (zB. in C/Dokumente...) und das auslesen... Ebenfalls sollen mehrere Files abgespeichert werden können und man soll auswählen können welche man laden möchte.
(Heißt man soll einen Filenamen angeben können)
Hoffe ich beanspruche eure Zeit nicht zu sehr
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#2

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 15:38
Ich verstehe es so, als ob wir dir dein Game entwickeln sollen?
Mhh.. klingt zwar gut, aber keiner wirds machen

Achja nochwas.. gewöhn' dir besser mal an den Code richtig zu schreiben .. Groß- und Kleinschreibung.
  Mit Zitat antworten Zitat
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#3

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 15:47
Hehe so sollte das eigentlich nicht klingen.
Also ich habe ja schon ein wenig Ahnung wie ich das machen muss, habe aber das Problem, dass irgendetwas mit meiner Syntax nicht stimmt.
Delphi-Quellcode:
 type TTest = record
     level: integer;
     name: string;
     end;
type Test = TTest;
so, oder ähnlich hatte ich das noch von Pascal in Erinnerung.
Leider ist die Syntax falsch, da immer wieder ein Fehler erzeugt wird.
Das ist mein Problem zur record function.

Zum Speichern habe ich zum Beispiel gefunden, wie man (soweit ich den Quelltext richtig gedeutet habe) den Wert eines
Editfelds speichern kann.
Leider suche ich da nicht nach. Ich muss herausfinden, wie ich Variablen in einer File speichere und wieder auslesen kann.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 16:14
Herzlich willkommen in der DP.
Zum einen will ich sagen, das pro Thread nur ein Thema erlaubt ist. Für weitere Fragen öffne ein neues Thema.
Hättest du die Suche bemüht, wärst du locker über einige Quelltexte gestolpert die deine Anliegen behandeln.

Zu deinem Quelltext. TTest als Rekord ist ok. Um es aber dann zu nutzen, musst du nicht noch einen Typen festlegen, sondern eine Variable vom Typ TTest deklarieren
var test : TTest; Dann kannst du mit Test.Name := <Name> auf die einzelnen Felder zugreifen.
Was ich schonmal nicht verstehe ist doch die eigentliche Unvereinbarkeit eines Browserspiels und der Programmierung dessen in Delphi.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#5

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 17:25
Danke für die Info, werde einen neuen Thread aufmachen !
  Mit Zitat antworten Zitat
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#6

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 18:07
Mhm kann mir jemand mal einen Link zu einer Dp Seite geben in der erklärt wird, wie man in eine Datei speichert?
Ich möchte eine record Speichern keinen Text aus einer Edit-Komponente.
Mein Quelltext ist nach mehrmaligem Suchen und verbessern immernoch nicht Funktionsfähig.

Definition des record
Delphi-Quellcode:
type TSpielstand = record
      level : integer;
      name : string;
      str : integer;
      ausdauer: integer;
      konsti: integer;
      inti : integer;
      geschick: integer;
      quest: integer;
      end;
Variablendefinition
Delphi-Quellcode:
 var
  Form2: TForm2;
  spielstand: tspielstand;
  datei: file of tspielstand;
Definieren meiner Variablen (Da es eine Art Rollenspiel werden soll, sind die Variablen Attribute)
Delphi-Quellcode:
procedure TForm2.Button11Click(Sender: TObject);
begin
   spielstand.level:= erf;
  spielstand.str := str;
  spielstand.geschick := geschick;
  spielstand.konsti := konsti;
  spielstand.inti := inti;
  assignfile (tspielstand,'n.txt');
  rewrite ();
  append (spielstand);
  write (tspielstand, Spielstand.level, Spielstand.str, Spielstand.geschick, Spielstand.konsti, Spielstand.inti);
  closefile (tspielstand);
end;
Natürlich ist der Quelltext voller Fehler und nichtmal vollständig (siehe: rewrite()
Da ich allerdings noch nicht so lange Programmiere, habe ich auch nur wenig Erfahrung mit den ganzen Funktionen von Lazarus bzw Delphi.

Hoffe ihr könnt mir helfen bzw mir einen Link oder Lösungsansätze geben
Ich versuche gerne mir aus Formeln meine Lösung zu bilden.

Gruß
  Mit Zitat antworten Zitat
Felix015

Registriert seit: 2. Okt 2008
16 Beiträge
 
#7

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 18:28
Als erstes würde ich anstatt
datei : file of TSpielstand; das so schreiben
datei : textfile; Wenn du jez deinen Record abspeichern willst schreibst du die Werte(wie du es schon wolltest) in eine Textdatei.Dann steht in Zeile eins zum Beispiel das Level.
Delphi-Quellcode:
assignfile(datei,'C:\...');
rewrite(f);
writeln(f,spielstand.level);
writeln(f,spielstand.bla);
closefile(f);
Wenn du das dann auslesen willst googlest du einfach mal nach einer funktion die eine bestimmte zeile einer textdatei ausliest, übergibst dieser Funktion deine Zeile und schreibst diese Zeile in eine Variable
Delphi-Quellcode:
level := LeseZeileAusDatei('C:\...',1);
... := LeseZeileAusDatei('C:\...',2);
 ...
Hoffe das hat jetzt weitergeholfen.
  Mit Zitat antworten Zitat
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#8

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 18:45
Danke erstmal dafür, die Antwort hat mir schonmal einiges gebracht.
Jetzt weiß ich schonmal wie ich abspeichere.
Dazu noch die Frage: Muss ich jedesmal wieder:
Delphi-Quellcode:
assignfile (...);
rewrite(...);
writeln(...);
writeln(...);
closefile(...);
machen? Wenn ich mir das so angucke meinst du das so, dass ich einfach mehrere
assignfiles schreibe und dann rewrite ... benutze oder?
Denn sonst würde die Datei immer wieder überschrieben werden.

Werde erstmal gucken ob ich hier im Dp was zu Zeile aus einer Textdatei auslesen finde

Danke nochmal !
  Mit Zitat antworten Zitat
Felix015

Registriert seit: 2. Okt 2008
16 Beiträge
 
#9

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 18:57
Hi,
du musst nicht jedesmal
Delphi-Quellcode:
assignfile (...);
rewrite(...);
writeln(...);
writeln(...);
closefile(...);
schreiben.

Kurze Erklärung zu dem Code:
- Assignfile verknüpft eine Variable mit einer Textdatei. In den Klammern musst du zuerst die Variable angeben, dann den Pfad der Textdatei.
Delphi-Quellcode:
var
f : textfile;
begin
assignfile(f{Variable},C:\{Pfad der Textdatei});
end;
- Dann musst du die Datei öffnen. Wie das hängt davon ab was du machen willst. Mit rewrite öffnest du die einfach so zum schreiben. Mit append würdest du weitere Zeichen Anfügen. Mit reset öffnest du eine Datei nur zum lesen
In Klammern kommt immer die Variable.

-Dann kannst du mit der Datei arbeiten:
writeln schreibt eine Zeile mit von dir angegebenen Text
readln liest eine Zeile aus(du kannst nicht bestimmen welche Zeile ausgelesen wird, du kannst nur von vorne beginnen)
writeln(f,'Dies steht jetzt in der Textdatei'); würde eine neue Zeile erstellen in der obiges steht.
Jetzt kannst du aber auch noch weitere Sachen machen(aber nur so , wie du die Datei geöffnet hast, wenn du datei mit reset(f) geöffnet hast, kannst du nichts schreiben)
Du könntest beliebig viele writeln's bzw readln's machen, das heißt du musst nicht immer assignfile und die öffnemethode davorschreiben

- zum schluss nicht vergessen die Verknüpfung mit der Variablen aufzuheben
closefile(f); mfg Felix
  Mit Zitat antworten Zitat
Sirlunchalot

Registriert seit: 6. Mär 2009
8 Beiträge
 
#10

Re: Laufendes Programm Speichern (savetofile)

  Alt 7. Mär 2009, 19:11
Achso, danke für diese logischen Erklärungen.
So kann man dass dann immer leichter verstehen

Habe sogar einen kleine Fehler gefunden
Aus dem von dir gesagten ging nämlich für mich hervor,
das bei deinem :
 writeln (f,spielstand.bla); der Name der Textdatei bestimmt wird, was aber bedeutet du hast die ' vergessen
Bin richtig stolz auf mich, dass ich darauf gekommen bin !

Werde mich dann um eine auslesen Funktion bemühen

Und nochmals danke
Gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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