Unrerschied zwischen Textdatei und Konfigurationsdatei?

... komplette Frage anzeigen

4 Antworten

INI-Datei:

  • maximal zwei Ebenen durch Kategorie und Schlüssel-Wert-Paar
  • Keine Unicode-Zeichen möglich
  • Einfaches, aber langsames parsen (da bei jedem Schreibzugriff die Datei gelesen, in den Speicher geladen, ausgewertet, geändert und neu auf Festplatte geschrieben wird)
  • Dateigröße auf 64 KB (in einigen Fällen auf 32 KB) begrenzt

XML-Datei:

  • unbegrenzte Anzahl an Ebenen (Elemente können Elemente enthalten) und Attributen
  • Unicode-Zeichen möglich
  • Kompliziertes, vergleichsweise langsames parsen (Daten werden aber zwischengespeichert)
  • Dateigröße durch Betriebssystem begrenzt


Das sind aber nur ein paar Merkmale zwischen den beiden Möglichkeiten und längst nicht alle. TXT würde ich grundsätzlich außer Acht lassen, weil du dich dann vollständig selbst darum kümmern müsstest (Struktur, Datenformat, Parsing, ...) und in Relation viel Aufwand für wenig Nutzen hättest. CFG-Dateien o.ä. haben ebenfalls kein fest vorgegebenen Format und sind nichts anderes als TXT-Dateien mit einer kennzeichnenden Dateierweiterung (Configuration - kurz: cfg).

Grundsätzlich würde ich zu XML raten. Je nach Programmiersprache gibt es genug Parser, die dir den Großteil der Arbeit abnehmen. Damit bist du meiner Meinung nach deutlich flexibler und hast eine logisch strukturierte Form, die gut wartbar und erweiterbar ist. Ich persönlich verwende grundsätzlich nur XML für solche Anforderungen.

PS: Es gibt genug Programmierer, die XML als Ablösung für INI sehen - sicherlich nicht ohne Grund.

Antwort bewerten Vielen Dank für Deine Bewertung

ini's sind Windowskram

XML sind ganz genau vorgeschriebe Dateien. Sie müssen nämlich wohlgeformt sein! XML's sind mächtiger und man kann viel besser struktorieren! Und XML ist Plattformunabhängig!

Antwort bewerten Vielen Dank für Deine Bewertung

Die .xml ist für den transfer zwischen 2 pc also für einen server besser geiegnet als ini. In ini darfst du nur 1ne section nur einmal haben. Ich würde dir lieber zur guten alten txt oder cfg raten.

Antwort bewerten Vielen Dank für Deine Bewertung

Über den Unterschied hast du ja schon einige Antworten bekommen und den Rat, .xml-Dateien statt inis zu benutzen.

Ich möchte dir noch einen Tipp geben: Du kannst auch .json-Dateien benutzen. Die haben eine ähnliche Logik wie XML, nur dass sie kompakter sind.

http://www.json.org/json-de.html

Hier mal ein direkter Vergleich:

XML:

<settings>
    <about>
        <name>Name</name>
        <email>name@example.com</email>
    </about>
    <meta>
        <title>Title</title>
        <keywords>
            <keyword>Keyword 1</keyword>
            <keyword>Keyword 2</keyword>
        </keywords>
        <version>1.0</version>
    </meta>
</settings>

json:

settings = {
    about: {
        name: 'Name',
        email: 'name@example.com'
    },
    meta: {
        title: 'Title',
        keywords: ['Keyword 1', 'Keyword 2'],
        version: 1
    }
}

Du siehst, man braucht weniger Code für so ziemlich dasselbe Ergebnis und es ist immer noch recht einfach verständlich ;)

Antwort bewerten Vielen Dank für Deine Bewertung