Example #1
0
        public void Parse()
        {
            sections.Clear();

            var res         = new byte[0x4000];
            var ret         = GetPrivateProfileString(null, null, "", res, res.Length, path);
            var str         = Encoding.ASCII.GetString(res);
            var strSections = str.Trim('\0').Split('\0');

            foreach (var strSec in strSections)
            {
                var section = new IniSection(strSec);

                Array.Clear(res, 0, res.Length);
                ret = GetPrivateProfileString(strSec, null, "", res, res.Length, path);
                var strKeys = Encoding.ASCII.GetString(res).Trim('\0').Split('\0');
                foreach (var strKey in strKeys)
                {
                    Array.Clear(res, 0, res.Length);
                    ret = GetPrivateProfileString(strSec, strKey, "", res, res.Length, path);

                    var value = Encoding.ASCII.GetString(res).Trim('\0');

                    section.Add(strKey, value);
                }

                sections.Add(section);
            }
        }