AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi TMemIniFile: Vorteile, Nachteile, Einschränkungen
Thema durchsuchen
Ansicht
Themen-Optionen

TMemIniFile: Vorteile, Nachteile, Einschränkungen

Ein Thema von Glados · begonnen am 18. Jul 2017 · letzter Beitrag vom 21. Jul 2017
Antwort Antwort
Seite 1 von 3  1 23      
Glados
(Gast)

n/a Beiträge
 
#1

TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 16:16
Mich interessiert es brennen, ob man mit TMemIniFile eine maximale Anzahl an Sections einlesen kann oder ob man ohne Weiteres 1000 einlesen und auch wieder abspeichern kann?
Intern arbeitet eine StringListe, deswegen sehe ich da keine Probleme. Aber gibt es dennoch eine Grenze an die man stoßen könnte?

Gibt es irgendwelchen anderen Nachteile: Dass TMemIniFile gegenüber TIniFile klar schneller ist, das sollte klar sein.
Aber soweit ich weiß wird beim einlesen einer einzigen Ident immer die gesamte Datei eingelesen was man ggf. als "Overhead" bezeichnen könnte?

Die Lesbarkeit ist hier sehr gut wie ich finde, nicht zu vergleichen mit JSON.
Außerdem kann bei Ini der Nutzer selber Daten abändern, ohne erst ein Meister in Dechiffrierung sein zu müssen (JSON).
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 16:37
Deutlich besser lesbar und manuell editierbar als JSON und deutlich flexibler und moderner als INIs wären XML-Dateien. Die kann man auch deutlich einfacher manuell anschauen und modifizieren, da man dort eine hierarchische Organisation hat, die man beim Editieren auch einzeln ein- und ausklappen kann.

Noch dazu gibt es dort Features um direkt bestimmte Einträge herauszufiltern (XPath) usw.

Aber vor allem kann man die Einträge viel besser gruppieren und hat nicht nur eine lange Liste von Sektionen usw., die manchmal in INIs dann sogar zur Abbildung von hierarchischen Strukturen missbraucht wurde.

Eine direkte Größenbeschränkung gibt es bei TMemIniFile nicht, aber die Performance ist deutlich schlechter als bei ähnlich großen XML-Dateien. TIniFile wiederum setzt auf API-Funktionen aus Windows 3.x auf und hat auch einige Bugs daraus geerbt...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 16:52
XML deutlich flexibler, ja. Besser lesbar als JSON oder gar Ini? Sicher nicht.

Eine ini-Datei traue ich noch zu jedem nicht technisch Versierten (Vertreter, Vertriebler, Kunde selbst) anzupassen. Im Notfall macht er den Identifier und damit einen Wert kaputt. Bei XML oder JSON schrotte ich mit etwas Pech gleich die gesamte Struktur.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#4

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 16:54
Es gibt auch irgendeinen "Nachfahren" von INI.

Hab nur dessen Namen vergessen. Wobei ich mir fast sicher bin, dass es mehrere Varianten/Implementationen von sowas gibt.
Da hatte irgendjemand eine Klasse geschrieben, die ähnlich einer INI, bzw. StringList (Name=Value) arbeitet, aber zusätzlich eine Text-Einrückung beachtet.
Da hat man dann eine Liste ähnlich eine einfachen XML/JSON, die aber mehr wie eine INI aussieht.

Ich glaub von Python kenn man auch sowas, wo Verschachtelungen über die Einrückung definiert werden und nicht mit Steuerzeichen/-Befehlen ala { } oder BEGIN END.



Und nein, TMemIniFile hat eigentlich "keine" Begrenzung.
Arbeitet intern mit mehreren TStringList, die intern je ein String-Array haben.

Technische Grenzen für 32-Bit-Anwendung:
- 2 GB RAM
- 2 GB-String-Zeiger-Array, also 2G / 4 Byte - einen kleinen Verwaltungsoffset = maximal mögliche Zeilen pro StringListe

TIniFile arbeiter über die zugehörige INI-WinAPI und ja, da gibt es einen schönen "Overhead".
INI (TIniFile) "hatte" mal eine maximale Dateigröße von 64 KB (Win9x) und die API ist langsam,
vorallem bei "vielen" Einträgen, da für jeden einzelnen ValueZugriff die Datei komplett neu eingelesen/ausgewertet/gespeichert wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (18. Jul 2017 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.343 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 17:23
XML deutlich flexibler, ja. Besser lesbar als JSON oder gar Ini? Sicher nicht.
Bis jetzt hat jeder, der sich weniger auskannte, dem ich erklären musste wie er da etwas ändert, das Gegenteil gesagt.
Mit JSON ist da kaum jemand klargekommen, XML und Ini waren beide kein großes Problem.

Einen passenden Editor setze ich mal voraus... mit Notepad sind alle drei Formate nicht schön editierbar, wenn es um größere Datenmengen geht.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#6

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 17:44
INI ignoriert einfach alles, was es nicht kennt (was falsch ist).

Hat den Vorteil, dass beim Bearbeiten mit TextEditor (eventuell inkl. Syntax-Highlighter) nicht gleich alles knallt, nur weil bei einem Wert irgendwas nicht stimmt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#7

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 17:55
+ keine 64K Grenze
+ keine mir bekannten Grenzen
+ Unicode möglich
+ Vermutlich schneller, habs nicht gecheckt
+ Alles was ich an TStringGrid mag
+ Doppelte Einträge möglich unter gleichem Namen (würde ich aber nie machen)
+ MultiPlatform
+ Portierung TIniFile zu TMemIniFile ist ein Spaziergang
- Liegt wohl zu 100% im Memory, bei IniFile bin ich mir nicht sicher

Wenn einer IniFile sagt denke ich vollautomatisch an TMemIni, ohne Ausnahme.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#8

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 18:03
TIniFile kann auch Unicode.
Und die 64K gibt es auch seit vielen Jahren nicht mehr.

MSDN-Library durchsuchenWritePrivateProfileSection
Zitat:
If the file exists and was created using Unicode characters, the function writes Unicode characters to the file. Otherwise, the function creates a file using ANSI characters.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 18. Jul 2017, 22:19
Eine ini-Datei traue ich noch zu jedem nicht technisch Versierten (Vertreter, Vertriebler, Kunde selbst) anzupassen. Im Notfall macht er den Identifier und damit einen Wert kaputt. Bei XML oder JSON schrotte ich mit etwas Pech gleich die gesamte Struktur.
Wenn er recht hat, hat er recht.
Einen passenden Editor setze ich mal voraus... mit Notepad sind alle drei Formate nicht schön editierbar, wenn es um größere Datenmengen geht.
Da übersiehst Du, das der eine oder andere Editor, etwas blind ist.
Da geht dann kein Weg mehr an Notepad vorbei.

Meiner Meinung nach haben alle drei Formate ihre Berechtigung, allerdings bin ich bisher erst einmal in die Verlegenheit gekommen die 64KGrenze (die es nicht mehr gibt) zu beachten, und das nur weil ich damals weder XML noch JSON gekannt habe.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: TMemIniFile: Vorteile, Nachteile, Einschränkungen

  Alt 19. Jul 2017, 00:43
Er hat nach Vor- und Nachteilen von TMenIniFile gefragt. Warum empfehlt ihr im jetzt XML und JSON?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz