![]() |
Re: Einstellungen speichern und verwalten
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Seit wann gibt es Tools die das mit altem INI-Krams ermöglichen? :gruebel: |
Re: Einstellungen speichern und verwalten
Liste der Anhänge anzeigen (Anzahl: 1)
Aber das hat ja gerade Hansa so angepriesen, dass man es "einfach" mit einem Editor editieren könnte, jetzt brauche ich ja doch wieder einen spezial Editor... :roll:
Aber auch mit einem Syntaxhighlighter sieht das nicht besser aus, siehe Anhang dazu. Zitat:
Zitat:
|
Re: Einstellungen speichern und verwalten
Luckie, deshalb benutze ich ja INIs. Aber es ist trotzdem nicht von der Hand zu weisen, daß man auch XML editieren kann. Übersichtlich aber auch nur mit einem XML-Editor, also wieder extra-Programm oder rumstochern im Original XML file. Sogar letzteres wäre mir lieber als die Registry. Und glaubt mir : Programme, bei denen nicht glasklar ist, was sie machen und wo sie was speichern, die installiert keiner mehr ! Beim kleinsten Verdacht, daß am System was umgestellt werden muß, nur um ein Programm laufen zu lassen, bei der Registry ist das eben so, diese Programme wandern eher in die Tonne, als auf die Festplatte.
|
Re: Einstellungen speichern und verwalten
Zitat:
XML-Code:
Sieht schon eher lesbar aus, wie ich finde.
<?xml version="1.0" encoding="ISO-8859-1"?>
<adressdb> <XMLFile> <MajorVersion>1</MajorVersion> <MinorVersion>226</MinorVersion> <Computer>HAL9000</Computer> <User>Michael</User> <ModifyDate>2005-10-29</ModifyDate> <ModifyTime>07:05:18</ModifyTime> <RecordCount>44</RecordCount> <HighestID>44</HighestID> </XMLFile> <Kontakt> <ID>1</ID> <Name>Alt</Name> <Vorname>Stephan</Vorname> <Strasse>Ellerhofer Straße 11</Strasse> <PLZ>34121</PLZ> <Ort>Kassel</Ort> </Kontakt> </adressdb> Just my 2 cents. |
Re: Einstellungen speichern und verwalten
Zitat:
|
Re: Einstellungen speichern und verwalten
Liste der Anhänge anzeigen (Anzahl: 1)
Moin, Spätmoin,
also da habt Ihr mal wieder ein 1a-Thema. Das ist immer wieder notwendig und eigentlich nicht wirklich gut geklärt. Derzeit stelle ich eine Programmsammlung gerade auf XML um. Die schnelle Edierbarkeit, sieeh Hansa, steht hier der höheren Verschachtelungstiefe, siehe Luckie, gegenüber. Irgendwann braucht man diese Verschachtelungen. Im Anhang habe ich eine sehr einfache XML-Konmponente, die mir dabei einiges geholfen hat. Was mir alledigs immer noch fehlt ist eine Komponente wo man andere Komponenten und deren benötigen Eigenschaften auswählen kann, die dann automatisch bei Programmende in eine in/xml/reg geschrieben werden und bei Programmstart gelesen. Unter Delphi4 hatte ich mal sowas, aber dann kamen da größere Umstellungen mit dem Design-Package und seitdem habe ich die Sache nicht mehr gelöst bekommen. :(. Aber irgendwie muß das auch unter den höheren Delphi-Versionen gehen. Grüße // Martin |
Re: Einstellungen speichern und verwalten
Ich nutze bei meinem aktuellen Projekt weder Ini's, noch die Registry (iiih..) oder XML:
Meine Eigenschaften - Struktur:
Delphi-Quellcode:
Meine Variablen:
type
TSetting = record DefaultFile: String[254]; UseDefaultPath: Boolean; FirstStart: Boolean; Width: Integer; Height: Integer; Top: Integer; Left: Integer; end;
Delphi-Quellcode:
Meine Speicher - Funktion:
type
TSettingsFile = File of TSetting; var B: TSettingsFile; Sets: TSetting;
Delphi-Quellcode:
Meine Lese - Funktion:
procedure TForm1.WriteProperties;
var TempOut, FileName: String; begin FileName := 'C:\Irgendwo\is.dat'; try AssignFile(B, FileName); if FileExists(FileName) then Reset(B) else Rewrite(B); Write(B, ProgSettings); finally CloseFile(B); end; end;
Delphi-Quellcode:
(Mag sein, dass die Prozeduren nicht 100-%ig richtig sind, da etwas "zurechgeschnitten')
function TForm1.ReadProperties: TSetting;
var FileName: String; bWasReaded: Boolean; Ent: TSetting; begin bwasReaded:=false; try AssignFile(B, SettingsFile); if FileExists(SettingsFile) then begin Reset(B); while not EOF(B) do begin Read(B, Ent); bWasReaded := True; end; end else Rewrite(B); finally CloseFile(B); end; if not bWasReaded then begin Ent.DefaultFile := ''; Ent.UseDefaultPath := false; Ent.FirstStart := True; end; Result := Ent; end; Sofern vorhanden, werden die Einstellungen im Anwendungsverzeichniss des jew. Users gespeichert. Darauf weise ich ihn hin, damit die Datei bei Bedarf gefunden und gelöscht werden kann. |
Re: Einstellungen speichern und verwalten
Dir ist aber klar, daß auch hier wieder das Rad neu erfunden wird ? 8) Du ersetzt eine Ini-Textdatei durch eine FILE OF "eigener Typ". Für .NET also schon mal ungeeignet. Etwas vergleichbares wie ein XML-Editor müsste man auch selber schreiben. Auch ein Standard-Editor läßt sich nicht benutzen. Also keine wirkliche Alternative. TIniFile bringt da doch einige nützliche Methoden mit.
|
Re: Einstellungen speichern und verwalten
Moin Daniel,
Was du da nimmst sind typisierte Dateien. Sowas war wohl zu TP-Zeiten "in" aber vergiss nicht, dass du hier darauf vertraus, dass dein record immer gleich groß ist. Eine Änderung im Compiler macht dich auf jeden Fall inkompatibel zu alten Dateien. Zum Beispiel ein D64-Compiler. ;) Außerdem musst du dich nun zu Fuss mit diesem, seit Delphi1 veralteten, IO Kram rumärgern. Die dpCollection wäre das was du da machst in "netter". ;) Zitat:
@Topic Solche Diskussionen machen wohl nicht viel Sinn für bestehende Anwendungen. Und ehrlich gesagt kapiere ich nicht ganz, warum man sich soviel mit native W32 rumärgert, wo doch solche Dinge für neue Apps durch .Net kinderleicht geworden sind. ;)
Delphi-Quellcode:
Während du oben 5 Zeilen brauchtest um es in ein auf-/abwärts inkompatibles, proprietäres Format zu schreiben, brauche ich 3 um es in ein XML zu schreiben:
uses
System.Xml.Serialization, System.Drawing; type Setting = public class public property DefaultFile: String; property UseDefaultPath: Boolean; [XmlAttributeAttribute] property FirstStart: Boolean; property Location : Point; property Size : Size; property Width : Integer read Size.Width; property Height : Integer read Size.Height; property Top : Integer read Location.Y; property Left : Integer read Location.X; end;
Delphi-Quellcode:
Oder 3 um es aus einem solchen zu laden:
begin
var setting := new Setting(); setting.DefaultFile := 'x:\y.z'; setting.Location := new Point(10, 20); setting.Size := new Size(100, 200); setting.FirstStart := false; using writer := new XmlTextWriter('Setting.xml', Encoding.Unicode) do begin with serializer := new XmlSerializer(typeof(Setting)) do serializer.Serialize(writer, setting); end; end;
Delphi-Quellcode:
Oder binär? :gruebel:
using reader := new XmlTextReader('Setting.xml') do
with serializer := new XmlSerializer(typeof(Setting)) do var setting := serializer.Deserialize(reader) as Setting;
Delphi-Quellcode:
btw: Wo bringt TIniFile nützliche Funktionen mit? Muss man ja alles ständig selbst tippen... :gruebel:
using stream := new FileStream('Setting.bin', FileMode.Create) do
with formatter := new BinaryFormatter() do formatter.Serialize(stream, setting); |
Re: Einstellungen speichern und verwalten
Alles auf .NET umzustellen ist etwas verfrüht. Was soll das ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 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