Lade Problem von Einstellungen

CrimeTime89

Mitglied
Problem beim Laden von Einstellungen aus einer ini-Datei

Hallo,
ich lade mit einer Funktion aus einer *.ini Einstellungen für das Programm, es Lädt diese auch ohne Probleme doch wenn ich dann in dem Programm zu den CheckBoxen gehe sind alle auf False, diese CheckBoxen befinden sich auf einem TabControl evtl. liegt es ja auch daran.

Hier der Code der Funktion:
Code:
private void loadSettings()
        {
            try
            {
                var Set = new frm1();
                Library.IniFile settings = new Library.IniFile(Environment.CurrentDirectory + @"\settings.ini");
                Set.chk1.Checked = Convert.ToBoolean(settings.IniReadValue("Main", "Setting1"));
                Set.chk2.Checked = Convert.ToBoolean(settings.IniReadValue("Main", "Setting2"));
                Set.chk3.Checked = Convert.ToBoolean(settings.IniReadValue("Main", "Setting3"));
                Set.chk4.Checked = Convert.ToBoolean(settings.IniReadValue("Main", "Setting4"));
                Set.chk5.Value = Convert.ToInt32(settings.IniReadValue("Main", "Setting5"));
                Set.chk6.Checked = Convert.ToBoolean(settings.IniReadValue("Main", "Setting6"));
            }
            catch
            {
MessageBox.Show("Error by Loading Settings!");
            }
        }
 
Zuletzt bearbeitet:
Einfacher und Aussagekräftiger zum Beantworten der Frage bzw. des Problems, währe es zu wissen wie genau diese Einträge in der *.ini-Datei aussehen.

Gruß
RudolfG

PS: Der Titel ist ja nicht so ganz aussagekräftig!
 
Zuletzt bearbeitet:
hier die Ini File:

Code:
[Main]
Setting1=True
Setting2=True
Setting3=100
Setting4=False
Setting5=True
Setting6=False

aber ich denke da liegt der hundbegraben, da ich bei LoadSettings es nochmal zu Bool Convertiere obwohl es schon richtig ist.
 
Also bei der Konvertierung geht, es schonmal nicht schief!

Wovon ich ausgehe, ist dass dir die Klasse Library.IniFile über die Methode IniReadValue nicht die Werte 1:1 zurückliefert.

Woher hast du den diese Klasse?

Gruß
RudolfG
 
Puh das ist eine gute Frage wo ich die mal ausgegraben hatte, jedenfalls sieht so die Read Funktion aus:

Code:
        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path);
            return temp.ToString();

        }
 
Hey,

also bei mir funktioniert es mit dieser Datei und dieser Funktion. Was aber beim 1. Versuch schief ging war, dass die Ini-Datei nicht in dem Verzeichnis lag, wo ich es angenommen habe. Allerdings wurde dann bei mir die Exception geschmissen und mit der Ausgabe der Meldung gefangen.

Guck dir bitte dazu Environment.CurrentDirectory im Debugger genau an und überprüf ob die Ini-datei sich auch wirklich in diesem Verzeichnis befindet.


Hoffe, dass das Problem damit behoben ist. :D

Gruß
RudolfG
 
Zuletzt bearbeitet:
wäre ja zu einfach gewesen, bei mir liegt sie genau da wo sie hin muss, habe den Pfad sogar vom Debug aus Kopiert und über Arbeitsplatz geöffnet geht ohne Probleme.
 
Ok, schade :D

Was steht denn beim Debuggen nach der Zuweisung z. B. in "Set.chk1.Checked" (geh mal mit der Maus über das Checked)?
 
Also irgendwie kann das, mit den hier gegebenen Informationen, nicht stimmen!

Der Quelltext versucht "Setting3" nach Boolean zu konvertieren aber in der Ini-Datei steht hier eine Zahl drinnen. Des weiteren wird in dem Quelltext "Setting5" versucht nach int zu konvertieren, in der Ini-Datei steht hier aber ein "True"

Gruß
RudolfG
 
Zurück