![]() |
SaveDialog/OpenDialog - abspeichern und laden von Variablen
Hallo,
Nachdem ich nach einigem googlen nichts gefunden habe, hab ich mich mal hier angemeldet und stelle meine Frage hier. Ich bin noch Delphi-Anfänger und bastel gerade an einem Spiel herum. Ich benutze Delphi 4 Professional Nun möchte ich eine Speicherfunktion einbauen, heißt also ich muss eine Reihe an Variablen abspeichern und diese wieder laden können. Wie mache ich das am besten? Oder gibt es sogar eine Möglichkeit einfach den aktuellen Programmstatus zu speichern? Ich bedanke mich schonmal im vorraus |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
hi
wenn du nur Variablen speichern möchtest dann sollte das mit einer ganz normalen Ini- oder Textdatei wunderbar funktionieren |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Das hab ich mir auch schon vorgestellt, nur hab ich keine Ahnung wie das mit dem speichern generell geht.
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Delphi-Quellcode:
procedure Speichern();
var save:TStringList; begin save:=TStringList.Create; with save do begin Add('String1'); Add('Strgin2'); .... end; save.SaveToFile('C:\test.txt'); save.Free; end; Das ganze würde auch besser gehen, ich weiss ja nicht wie du speichern möchtest, aber wenn deine Textdatei ungefähr so aussehen soll: ****** STRING1=jaja STRING2=nönö STRING3=blabla .... ******* dann würde ich das so speichern
Delphi-Quellcode:
Bei save.Values['STRING1']:='jaja'; würde dann in der Datei STRING1=jaja rauskommen^^
var
save:TStringList begin save:=TStringList.Create; save.Values['STRING1']:='jaja'; save.Values['STRING2']:='nönö'; ... save.SaveToFile(..); save.Free; end; |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
für ne ini datei
Delphi-Quellcode:
dazu muss man dann noch die Unit "IniFiles" einbinden.
procedure TForm1.Button1Click(Sender: TObject);
var Ini: TIniFile; begin Ini := TIniFile.Create('DeineDatei.ini'); try Ini.WriteInteger('Section1', 'Variable1', v1); finally Ini.Free; end; end; edit: @b00gie: dann nehm doch direkt ne ini :wink: |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
so und um nun das ganze zu laden
Delphi-Quellcode:
var
load:TStringList; begin load:=TStringList.Create; load.LoadFormFile(...); VARIABLE1:=load.Values['STRING1']; VARIABLE2:=load.Values['STRING2']; .... load.Free; end; |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Kleine Anmerkung noch:
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Damit setzt Du Dich aber in die Nesseln. Bei relativen Pfaden wird im aktuellen Verzeichnis gespeichert, und das muss nicht unbedingt das Programmverzeichnis sein.
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
dann hab ich bisher wohl immer Glück gehabt...
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Ich würde die Ini einfach dort speichern, wo so etwas auch vorgesehen ist, nämlich unter APPDATA.
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Danke schön alle zusammen! Das geht ja echt schnell hier im Forum
Ich habe jetzt die Lösung von b00gie genommen und es funktioniert alles wunderbar! |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
Wenn du in den Anwendungspfad speichern willst (was für Einstellungen auch schon unsauber ist, außer höchsten zu eigenen Testzwecken), solltest du zumindest immer
Delphi-Quellcode:
nutzen.
ExtractFilePath(ParamStr(0))
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Noch eine Frage:
Nun möchte ich überprüfen, ob die Datei "MeineDatei.txt" im Ordner "C:\abc" liegt. Das ganze soll in eine Verzweigung rein. Im Pseudocode also folgendermaßen: if MeineDatei.txt ist im Ordner C:\abc then ... Das ganze soll dazu dienen, dass die Fehlermeldung "Datei MeineDatei.txt kann nicht geöffnet werden" nicht mehr auftritt, sondern der darauffolgende Code ignoriert wird. (Ein Wert soll aus MeineDatei.txt automatisch geladen werden, aber nur wenn sie da ist, sonst soll einfach nichts passieren) Wie realisiere ich das? |
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Schau mal in die Hilfe unter FileExists().
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Dankeschön!
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Ich persönlich hätte ja auch nichts dagegen, Dateien im Programmverzeichnis abzulegen. Spätestens seit Vista zieht Microsaft (:mrgreen:) aber die Daumenschrauben an, so dass man auf Dauer damit nicht glücklich wird. Und zu dem Problem mit dem Finden: das schreibt man sich einmal und legt die Routine dann in einer Unit ab, ist doch auch kein Beinbruch.
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Zitat:
|
Re: SaveDialog/OpenDialog - abspeichern und laden von Variab
Hallo Luckie :hi:
Du hast natürlich Recht! Meine "Unbelehrbarkeit" bezieht sich auf meine persönlichen Anwendungen, die nur von mir benutzt werden. Allerdings, da ich regelmäßig mit verschiedenen Computern arbeite, lege ich bei Bedarf auch maschinenspezifische INI's an. Theoretisch sind als weitere Varianten benutzerspezifische oder sogar maschinen- und nutzerspezifische INI's in meiner dafür verwendeten Unit vorgesehen. Das habe ich aber noch nicht gebraucht. Ich gebe zu, da ist es dann einfacher, gleich den vom BS vorgesehenen Weg zu gehen. Keine Frage! Ich sehe meine Starrköpfigkeit mehr als persönliche Marotte, mit der ich keinem Schade, da ich nicht gewerbsmäßig programmiere. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz