| Autor | Beitrag | 
| NOS 
          Beiträge: 183
 Erhaltene Danke: 2
 
 Win XP, Win Vista Ultimate, Win 7 Ultimate
 Delphi 19.4 - Sydney
 
 | 
Verfasst: Fr 02.03.18 09:45 
 
Hallo zusammen,
 meine Software ist über die Jahre gewachsen und der Ladevorgang der Settings ist schon etwas länger geworden ... da ich auch Listen in den Settings habe stelle ich fest dass die Speicherung in einer INI Datei schon sehr langsam ist.
 Nun würde ich gern wissen wie ihr eure Settings speichert und ob es eventuell sogar spezielle Compos für sowas gibt.
 Grüße ins Forum,
 Andreas
Moderiert von  Christian S.: Typo im Titel behoben | 
|  | 
| Narses 
          
  Beiträge: 10183
 Erhaltene Danke: 1256
 
 W10ent
 TP3 .. D7pro .. D10.2CE
 
 | 
Verfasst: Fr 02.03.18 10:20 
 
Moin!
 	  |  NOS hat folgendes geschrieben  : |  	  | die Speicherung in einer INI Datei schon sehr langsam ist. | 
 Du verwendest TMemIniFile ? Das sollte eigentlich relativ schnell sein...    (Oder nimmst du noch TIniFile ?!   )
 XML geht auch, warum nicht. Man handelt sich damit aber auch diverse andere Probleme ein. Ganz soo schlecht, wie man INI immer wieder mal wahrnimmt, ist das gar nicht. Und in Punkto Performance sollte XML auch nicht grade ganz vorne liegen.    cu
 Narses_________________ There are 10 types of people - those who understand binary and those who don´t.
 Für diesen Beitrag haben gedankt: NOS
 | 
|  | 
| NOS  
          Beiträge: 183
 Erhaltene Danke: 2
 
 Win XP, Win Vista Ultimate, Win 7 Ultimate
 Delphi 19.4 - Sydney
 
 | 
Verfasst: Fr 02.03.18 10:29 
 
Hallo Narses,
 ich nutze noch das "alte" INIFile .. am schnellsten sind Listen mit gleicher Blockgröße die ich als Records in einem Filestream schreibe ... sowas ist ja leider bei normalen Settings nicht wirklich machbar ... vielleicht sollte ich mal auf TMemINIFile umstellen    Mein Traum wäre ein Object oder ne Compo wo ich die Variablen in eine Struktur lege und diese dann automatisch über einen filestream in eine datei schreibt    Thanks,
 Andreas | 
|  | 
| Symbroson 
          Beiträge: 382
 Erhaltene Danke: 67
 
 Raspbian, Ubuntu, Win10
 C, C++, Python, JavaScript, Lazarus, Delphi7, Casio Basic
 
 | 
Verfasst: Fr 02.03.18 12:43 
 
Ich finde ja json am bequemsten. Das kann man auch problemlos selber machen _________________ most good programmers do programming not because they expect to get paid or get adulation by the public, but because it's fun to program. (Linus Torvalds)
 Für diesen Beitrag haben gedankt: NOS
 | 
|  | 
| doublecross 
          Beiträge: 149
 Erhaltene Danke: 27
 
 Windows 7
 C#; Visual Studio 2015
 
 | 
Verfasst: Fr 02.03.18 13:37 
 
Hi,
 es kommt ganz auf das Programm an. In der Regel bevorzuge ich XML, da es sehr Flexibel (auch dank der Baunstruktur und Attributen) ist aber gleichzeitig noch lesbar bleibt, falls da mal jemand per Hand ran muss.
 Aber Narses hat recht, so schlecht sind INIs nicht, wenn ich aber an meine frühen Projekte zurückdenke kann ich das von TIniFile nicht behaupten. Wenn ich mich recht entsinne schreibt es nämlich jedes mal, wenn du eine wert veränderst auf die Platte, wenn du also alle deine Settings durchittterierst, und setzt, dann schreibst du für jeden Einstellungspunkt einmal die komplette Datei, dass das langsam wird wundert mich gar nicht. Dann gar es bei tIniFile glaube ich noch eine recht greringe Maximalgroße für die INI-Datei. Beides in Kombination führte bei mir sehr schnell dazu tMemIniFile zu verwenden. Dort muss du zwar durch den Aufruf von UpdateFile immer selber sagen, wann die Datei geschrieben werden soll, aber dafür wird das auch nur in diesem Fall gemacht (idealerweise also nur 1x, auch wenn du alle einstellungen veränderst) und die Größenbeschränkung der Datei fällt auch. Von dem UpdateFile einmal abgesehen wird es aber genauso verwendet wir tIniFile, so dass es ein leichtes sein sollte dein Programm darauf umzustellen. Dein Problem müsste das auf jeden Fall beheben.
 | 
|  | 
| Frühlingsrolle Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 03.03.18 12:47 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - | 
|  | 
| Sinspin 
          Beiträge: 1335
 Erhaltene Danke: 118
 
 Win 10
 RIO, CE, Lazarus
 
 | 
Verfasst: Sa 03.03.18 15:28 
 
	  |  Frühlingsrolle hat folgendes geschrieben  : |  	  | mir schwebt gerade eine Idee vor, eine XML-Klasse zu erstellen, die ähnlich aufgebaut sein wird, wie die INI-Klasse.... | 
 Das habe ich mir vor ein paar Jahren mal angetan. Verwende ich noch immer fuer einfache Sachen.
 Fuer alles andere verwende ich "single file" Datenbanken oder eine Tabelle die ich einfach aus einer CSV Datei laden kann._________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
 | 
|  | 
| Frühlingsrolle Ehemaliges Mitglied
 Erhaltene Danke: 1
 
 
 
 
 | 
Verfasst: Sa 03.03.18 18:17 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 Zuletzt bearbeitet von Frühlingsrolle am Di 06.03.18 07:53, insgesamt 6-mal bearbeitet
 | 
|  | 
| Gausi 
          Beiträge: 8550
 Erhaltene Danke: 478
 
 Windows 7, Windows 10
 D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
 
 | 
Verfasst: So 04.03.18 13:49 
 
Für normale Einstellungen (Optionen, Fensterpositionen etc.) nutze ich TMemIniFile. Wenn längere Datensätze dazukommen, insbesondere Listen mit beliebiger Länge (d.h. der User kann beliebig Elemente hinzufügen), kommen diese Daten in eine weitere Datei mit einem dafür zugeschnittenen "Format". 
 Da mach ich dann oft einfach ein StringList.LoadFromFile und parse die schnell (d.h. ohne viel Code-Aufwand) selber. Entweder ein Item pro Zeile, ggf. in einem CSV-Format mit einem geeigneten Separator, oder pro String/Integer/etc. eine Zeile.
 _________________ We are, we were and will not be.
 | 
|  | 
| Lemmy 
          Beiträge: 792
 Erhaltene Danke: 49
 
 Windows 7 / 10; CentOS 7; LinuxMint
 Delphi 7-XE10.1, VS 2015
 
 | 
Verfasst: Mo 05.03.18 07:37 
 
denkbar wäre auch JSON - vor allem wenn die Settings schon "fertig" in einer Delphi-Klasse zur Verfügung stehen. Sollte vermutlich auch nicht ganz langsam sein | 
|  | 
| Tankard 
          
  Beiträge: 217
 Erhaltene Danke: 96
 
 
 
 
 | 
Verfasst: Mo 05.03.18 17:00 
 
Also ich speicher die Sachen immer in einer SQLite3 Datei.
Schnell und flexibel.
 | 
|  |