Laden...

INI Datei - Erstellen, Auslesen und Anzeigen

Erstellt von Cizzl vor 7 Jahren Letzter Beitrag vor 7 Jahren 8.366 Views
C
Cizzl Themenstarter:in
51 Beiträge seit 2016
vor 7 Jahren
INI Datei - Erstellen, Auslesen und Anzeigen

Hi,
ich bin gerade dabei die INI Datei zu verstehen, leider habe ich noch ein paar Verständnis Probleme. Bei der INI Datei, welche Informationen kann ich alles auslesen und ausgeben bspw. kann ich die einzelnen Sektionen auch auslesen?
Außerdem beschäftigt mich noch wenn ich die Daten ausgelesen habe, wie kann ich diese dann Ausgebe (also in eine TreeView oder ListView)?
Anbei ist mein bis lang verwendeter Code.

Hoffe meine Fragen sind verständlich! (Frage 2 überschneidet sich mit Frage 1 😉)


public class IniFile
    {
        public string path;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        
        public IniFile(string INIPath)
        {
            path = INIPath;
        }

        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, path);
        }
        
        public string IniReadValue(string Section, string Key, string Value)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp, 255, path);
            return temp.ToString();
        }
    }

P.S.: Ich weiß es gibt bereits andere Möglichkeiten wie eine XML Datei =)

Gruß Cizzl 😁

3.003 Beiträge seit 2006
vor 7 Jahren

Nimm's mir nicht übel, aber die Frage liest sich etwa so:

"Ich möchte mir gern Einstellungen speichern. Ich weiss, dass es dafür bessere Möglichkeiten gibt, würde mir aber trotzdem gern in den Fuß schießen. Also, wie schieße ich mir am besten in den Fuß?"

.ini ist tot. Und das nicht erst seit gestern, sondern seit gut 15 Jahren, das Konzept weigert sich nur hartnäckig, zu sterben. Tu' dir einen Gefallen und beschäftige dich damit, wenn du es wirklich musst. Lern stattdessen, wie .NET das Problem von persistenten Einstellungen löst (ja, mit XML, aber soweit abstrahiert, dass einen das eigentliche XML nicht interessieren muss).

Nachdem ich das losgeworden bin:

Reading and Writing Values from INI Files with C#

(aber nachher nicht heulen, wenn der Fuß weh tut!)

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

C
Cizzl Themenstarter:in
51 Beiträge seit 2016
vor 7 Jahren

"Ich möchte mir gern Einstellungen speichern. Ich weiss, dass es dafür bessere Möglichkeiten gibt, würde mir aber trotzdem gern in den Fuß schießen. Also, wie schieße ich mir am besten in den Fuß?"

Trotz der großen Kritik gegenüber INI Dateien würde ich mir gerne in 'den Fuß schießen' wie du es nennst, deswegen besteht meine Frage. Ich habe nämlich bereits eine INI Datei die ich durch mein Programm verändern bzw. auslesen will.

Nachdem ich das losgeworden bin:

>

leider werde ich daraus nicht schlauer. 🙁

Gruß Cizzl 😁

16.835 Beiträge seit 2008
vor 7 Jahren

Ich versteh nich ganz, was Du Dir von dem Thread erwartest. Ich sehe keine konkrete Frage.
Sollen wir Dir Dein Code quasi als Hilfsjob korrigieren, oder was ist genau der Wunsch?

Die Grundlagen, wie eine INI-Datei funktioniert, kannst Du nachlesen.
Es ist unnötig, wenn wir Dir die Spezifikationen in den Thread kopieren würden.

Ansonsten gibt es Millionen von bestehenden INI-Implementierungen.
Einfach nen bissle Eigeninitative zeigen und selbst mal ein bisschen googlen. Ansonsten wie gesagt erkenne ich keine Frage.

C
Cizzl Themenstarter:in
51 Beiträge seit 2016
vor 7 Jahren

Ich versteh nich ganz, was Du Dir von dem Thread erwartest. Ich sehe keine konkrete Frage.

Meine Frage ist, welchen Teil einer INI Datei kann ich alles auslesen? Sektion? Schlüssel? Wert?
Wenn ich nur den Wert bspw. auslesen kann wie gebe ich diesen dann aus?

Gruß Cizzl

3.003 Beiträge seit 2006
vor 7 Jahren

leider werde ich daraus nicht schlauer. 😦

Hm, wieso nicht? Ich fand den Link und besonders den Beispielcode dort eigentlich ziemlich gut. Hast du dir das Beispiel mal heruntergeladen und ausgeführt? Reingesteppt? Am Code herumgespielt? Das sollte an sich alle Fragen beantworten.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

709 Beiträge seit 2008
vor 7 Jahren

Meine Frage ist, welchen Teil einer INI Datei kann ich alles auslesen? Sektion? Schlüssel? Wert?

Prinzipiell kann man aus jeder Datei alles auslesen.

Hier gibt's Bibliotheken, die INI-Dateien lesen und schreiben können: https://www.nuget.org/packages?q=ini+file

16.835 Beiträge seit 2008
vor 7 Jahren

Meine Frage ist, welchen Teil einer INI Datei kann ich alles auslesen? Sektion? Schlüssel? Wert?

Diese Frage zeigt, dass Du Dich keine einzige Minute mit INI-Dateien beschäftigt hast; denn genau dann wüsstest Du das.
INI file - ab und zu musst auch mal selbst Informationen beschaffen und ned nur liefern lassen 😉

C
Cizzl Themenstarter:in
51 Beiträge seit 2016
vor 7 Jahren

Diese Frage zeigt, dass Du Dich keine einzige Minute mit INI-Dateien beschäftigt hast; denn genau dann wüsstest Du das.

Ich glaube ich habe mich schon 'ein paar Minuten' damit beschäftigt, sonst würde ich solche Fragen bezüglich diesem Thema nicht fragen.

771 Beiträge seit 2009
vor 7 Jahren

Hi,

in der MSDN findest du alle Funktionen dazu, z.B. GetPrivateProfileSection (hier müsstest du dann aber noch den zurückgegeben Buffer nach den '\0' durchparsen).
Suche dir als Anfänger daher besser eine Library.

Und deine 2. Frage bzgl. Anzeigen ist so selbstverständlich, weil du da einfach nur in die Doku des entsprechenden Controls reinschauen brauchst.