Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einstellungen speichern und verwalten (https://www.delphipraxis.net/56945-einstellungen-speichern-und-verwalten.html)

Robert_G 14. Nov 2005 20:03

Re: Einstellungen speichern und verwalten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie
Das
Zitat:

...
(Die Zeilenumbrüche habe ich schon eingefügt, damit es nicht den Thread zerschießt.)
ist ein Ausschnitt aus einer XML datei die von einem programm angelegt wurde. Also unter einfach mit dem Editor bearbeiten verstehe ich as anderes.

Ich habe das mal einfach in meinen XML Editor gewofen und *plopp* konnte ich es in einem Grid editieren.
Seit wann gibt es Tools die das mit altem INI-Krams ermöglichen? :gruebel:

Luckie 14. Nov 2005 20:05

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 von Luckie
Das
Zitat:

...
(Die Zeilenumbrüche habe ich schon eingefügt, damit es nicht den Thread zerschießt.)
ist ein Ausschnitt aus einer XML datei die von einem programm angelegt wurde. Also unter einfach mit dem Editor bearbeiten verstehe ich as anderes.

Zitat:

Zitat von Robert_G
Ich habe das mal einfach in meinen XML Editor gewofen und *plopp* konnte ich es in einem Grid editieren.
Seit wann gibt es Tools die das mit altem INI-Krams ermöglichen? :gruebel:

Für Ini-dateien braucht man das eben nicht, aber da findet man bestimmt ähnliches Tools.

Hansa 14. Nov 2005 20:13

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.

Daniel Schuhmann 14. Nov 2005 20:34

Re: Einstellungen speichern und verwalten
 
Zitat:

Zitat von Luckie
Aber auch mit einem Syntaxhighlighter sieht das nicht besser aus, siehe Anhang dazu.

Bitte mein ordentlich formatiert nicht unterschlagen. Ein Delphiprogramm, bei dem ich alles in eine Zeile schreibe, kann auch keiner entziffern, aber schön in Blöcke gepackt kann man es schon lesen. Gilt genauso beispielsweise für Tabellen in HTML.

XML-Code:
<?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>
Sieht schon eher lesbar aus, wie ich finde.

Just my 2 cents.

Luckie 14. Nov 2005 20:40

Re: Einstellungen speichern und verwalten
 
Zitat:

Zitat von Daniel Schuhmann
Zitat:

Zitat von Luckie
Aber auch mit einem Syntaxhighlighter sieht das nicht besser aus, siehe Anhang dazu.

Bitte mein ordentlich formatiert nicht unterschlagen.

Ich habe es nicht unterschlagen. Diese Datei wurde von einem Delphi-Programm zur Laufzeit angelegt! Aber das habe ich auch schon gesagt. Muss ich mich jetzt auch noch beim Enstellungen schreiben darüm kümmern, dass es schön aussieht? Dann schreibe ich es doch lieber in einer Ini-Datei weg. da brauche ich mich um das Layout nicht kümmern und kann es mit Sicherheit mit einem einfachen Editor lesen und bearbeiten.

mschaefer 14. Nov 2005 22:54

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

Daniel G 14. Nov 2005 23:08

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:
type
  TSetting = record
   DefaultFile: String[254];
   UseDefaultPath: Boolean;
   FirstStart: Boolean;
   Width: Integer;
   Height: Integer;
   Top: Integer;
   Left: Integer;
  end;
Meine Variablen:
Delphi-Quellcode:
type
  TSettingsFile = File of TSetting;

var
 B: TSettingsFile;
 Sets: TSetting;
Meine Speicher - Funktion:
Delphi-Quellcode:
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;
Meine Lese - Funktion:
Delphi-Quellcode:
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;
(Mag sein, dass die Prozeduren nicht 100-%ig richtig sind, da etwas "zurechgeschnitten')


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.

Hansa 14. Nov 2005 23:47

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.

Robert_G 15. Nov 2005 00:41

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:

Delphi-Quellcode:
if not bWasReaded then

Und das von unserem stolzen English-LK'ler :mrgreen:

@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? :gruebel:
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... :gruebel:

Hansa 15. Nov 2005 01:18

Re: Einstellungen speichern und verwalten
 
Alles auf .NET umzustellen ist etwas verfrüht. Was soll das ?

Zitat:

Zitat von Robert_G
...btw: Wo bringt TIniFile nützliche Funktionen mit? Muss man ja alles ständig selbst tippen... :gruebel:

Wie, was selber tippen ? :shock:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Seite 3 von 4     123 4      

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