Ini-Datei: Zeichen ersetzen

Va7e

Mitglied
Hi!

Ich habe eine Ini-Datei, die so aussieht:

Wert1=0
Wert2=1
Wert3=2

Jetzt möchte ich aus meinem Programm heraus einen Wert ändern, z.B. Wert2=7.
Gibt es eine Möglichkeit dafür? Ich meine, man könnte ja die ganze Ini-Datei einlesen und komplett wieder mit EINEM veränderten Wert speichern, aber das ist auch nicht der Sinn der Sache... Ich kann mit einer selbstgeschriebenen Klasse die Ini-Datei einlesen und den jeweiligen Wert anzeigen, aber ändern kann ich den nicht.

Hat Jemand eine Idee?

MfG
Va7e
 
Hi

Ini-Dateien kannst du in C# nur über die Windows-API nutzen
Hier ein Beispiel: http://www.codeproject.com/KB/cs/cs_ini.aspx

Besser wäre jedoch die Verwendung von Xml-Konfigurationsdateien.

Danke für die Antwort! Ich nutze Visual Basic.NET 2008, kein C#. Also es ist ja eigentlich egal, obs eine Ini-Datei ist oder eine ganz normale Text-Datei, es geht erstmal nur darum, dass man ein bestimmtes Zeichen oder meinetwegen eine bestimmte Zeile ersetzen kann. XML-Reader/Writer habe ich bereits :)

Hier der Code:

Code:
        Dim Zeilen As New List(Of String)
        Dim sr As New StreamReader(TestINI)

        While Not sr.EndOfStream
            Zeilen.Add(sr.ReadLine())
        End While

        sr.Close()
        sr.Dispose()

        'zeile ausgeben; achtung wegen nullbasiertem index...
        Replace(Zeilen.ElementAt(1), "2", "7")

        Dim sw As New StreamWriter(TestINI, False)

        For Each Zeile In Zeilen
            sw.WriteLine(Zeile)
        Next

        sw.Flush()
        sw.Close()
        sw.Dispose()

Ich kann zwar mit Replace den Wert ändern: Wert=1 ---> Wert=7, aber speichern tut er trotzdem Wert=1..
 
Hi.

String kannst du nicht ändern! Replace liefert dir einen neuen String zurück. Für dich bedeutet dies, dass du den Rückgabewert wieder deiner Variable zuweisen musst.

Als Alternative könntest du dir Nini ansehen. Damit kann man recht bequem (unter anderem) mit Ini Dateien arbeiten.

lg, Alex
 
Hi.

String kannst du nicht ändern! Replace liefert dir einen neuen String zurück. Für dich bedeutet dies, dass du den Rückgabewert wieder deiner Variable zuweisen musst.

Als Alternative könntest du dir Nini ansehen. Damit kann man recht bequem (unter anderem) mit Ini Dateien arbeiten.

lg, Alex

Doch! :)
Habs hingekriegt:

Code:
Zeilen.Item(1) = Replace(Zeilen.ElementAt(1), "1", "2")

Trotzdem danke für eure Hilfe!

MfG
Va7e
 
Zurück