![]() |
Optionen für Programm Speichern
hi @ all,
ich hab en programm des sowohl auf nem server als auch auf nem pc läuft... da die pfade im programm für denn server anders heißen wie am pc, wollt dem user ne form anbieten in dem er wählen kann wo er sich befindet... jetzt weiß ich nur nicht wie ich des speichern soll was der benutzer ausgwählt hat... als .ini datei???? wie würd ich mit ner .ini datei arbeiten??? genauso wie mit nem .txt file??? |
Re: Optionen für Programm Speichern
Hi Andidreas,
ich benutze zum Speichern von Optionen immer XML-Dateien. Hier mal meinen Aufbau der Klasse:
Delphi-Quellcode:
Das ist jetzt nicht das nonplusultra, aber vielleicht ein kleiner Denkanstoß.
unit uoptions;
interface uses XMLIntf, XMLDoc, SysUtils; type TOptions = class(TObject) private FXMLDoc: IXMLDocument; FLanguage: String; FFileName: String; public constructor Create(const OptionsFileName: String); destructor Destroy; override; procedure Load; procedure Save(SaveInFile: Boolean = false); // Optionen property Language: String read FLanguage write FLanguage; end; implementation { TOptions } constructor TOptions.Create(const OptionsFileName: String); begin FFileName := OptionsFileName; FXMLDoc := TXMLDocument.Create(FFileName); FXMLDoc.LoadFromFile(FFileName); if (not (FXMLDoc.DocumentElement.NodeName = 'settings')) then begin raise Exception.Create('Not a valid settingsfile'); end; FXMLDoc.Active := true; end; destructor TOptions.Destroy; begin FXMLDoc.SaveToFile(FFileName); FXMLDoc.Active := false; inherited; end; procedure TOptions.Load; function DoLoad(NodeName: String; Default: String = ''): String; var Node: IXMLNode; begin Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(NodeName); if Node <> nil then Result := Node.Text else Result := Default; end; begin // Laden Language := DoLoad('language', 'de'); end; procedure TOptions.Save(SaveInFile: Boolean = false); procedure DoSave(NodeName: String; Text: String); var Node: IXMLNode; begin Node := FXMLDoc.DocumentElement.ChildNodes.FindNode(NodeName); if Node = nil then Node := FXMLDoc.DocumentElement.AddChild(NodeName); Node.Text := Text; end; begin // Speichern DoSave('language', Language); if SaveInFile then FXMLDoc.SaveToFile(FFilename); end; end. |
Re: Optionen für Programm Speichern
Entwerder speicherst Du die Einstellungen in der Registry (nicht gerne gesehen weil unpraktisch) oder Du nimmst eine ini-Datei.
Für ini's gibt es TInifile. Gib einfach in der Delphi-Hilfe mal TInifile ein. Dort ist alles beschrieben... |
Re: Optionen für Programm Speichern
Zitat:
|
Re: Optionen für Programm Speichern
Registry hat einen weiteren Nachteil:
Wenn die Software auf einen anderen PC umzieht, muss man das mühsam aus der Registry exportieren (sofern man es überhaupt findet) und am neuen PC einbauen. Eine ini kopiert man einfach mit dem exe und alles ist wieder wie gewohnt. |
Re: Optionen für Programm Speichern
Zitat:
|
Re: Optionen für Programm Speichern
Zitat:
ich arbeite eigentlich lieber mit der registry.. Zitat:
|
Re: Optionen für Programm Speichern
Zitat:
|
Re: Optionen für Programm Speichern
Alle Speicherarten haben ihre Vor- und Nachteile. Also musst du dir darüber klar werden, welche Ansprüche du an deine Speicherart stellst und dann die beste wählen. Pauschal kann man das nicht sagen, denke ich. :)
MfG freak |
Re: Optionen für Programm Speichern
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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