Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#29

Re: Einstellungen speichern und verwalten

  Alt 14. Nov 2005, 23:41
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:
if not bWasReaded then
Und das von unserem stolzen English-LK'ler

@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:
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;
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:
Delphi-Quellcode:
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;
Oder 3 um es aus einem solchen zu laden:
Delphi-Quellcode:
using reader := new XmlTextReader('Setting.xml') do
   with serializer := new XmlSerializer(typeof(Setting)) do
      var setting := serializer.Deserialize(reader) as Setting;
Oder binär?
Delphi-Quellcode:
using stream := new FileStream('Setting.bin', FileMode.Create) do
with formatter := new BinaryFormatter() do
   formatter.Serialize(stream, setting);
btw: Wo bringt TIniFile nützliche Funktionen mit? Muss man ja alles ständig selbst tippen...
  Mit Zitat antworten Zitat