Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

INI files

14K
21 марта 2008 года
stimpi
100 / / 04.09.2007
Какие в .NET существуют средства для работы с .ini файлами ?
370
21 марта 2008 года
koval
443 / / 29.08.2005
первый ответ гугла
14K
21 марта 2008 года
stimpi
100 / / 04.09.2007
вырезка со статьи
Цитата:
...INI files are not supported in .NET.



а я так надеялся :mad: ....
прийдется API юзать ...

14K
21 марта 2008 года
stimpi
100 / / 04.09.2007
вот, собственно что получилось

Test.ini лежит в папке с исходниками
 
Код:
[Main]
Country=Ukraine
City=Kiev

[PrivateInfo]
Age=21
Name=Dima
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;

namespace IniTest
{
    class Program
    {
        [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileStringA", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
        public static extern int GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, byte[] lpReturnedString, int nSize, string lpFileName);

        static void Main(string[] args)
        {
            char space = ' ';
            string returnStr = new String(space,1);
            string sectionName = "PrivateInfo";
            string keyName = "Name";
            string defaultStr = "";
            string ret = new String(space,100);
            int Size = ret.Length;
            FileInfo iniFile = new FileInfo(new DirectoryInfo(Directory.GetCurrentDirectory()).Parent.Parent.FullName + @"\Test.ini");

            if(iniFile.Exists)
            {
                returnStr = GetFromIniFile(sectionName, keyName, defaultStr, Size, iniFile.FullName);
            }
            else
            {
                Console.WriteLine("INI file doesn't exist");
            }

           
            Console.WriteLine(returnStr);
        }

        private static string GetFromIniFile(string sectionName, string keyName, string defaultStr, int Size, string fileName)
        {
            int result;


            byte[] new_ret = new byte[Size];
            ASCIIEncoding oAscii = new ASCIIEncoding();

            result = GetPrivateProfileString(sectionName, keyName, defaultStr, new_ret, Size, fileName);

            string returnStr = oAscii.GetString(new_ret, 0, result);
            returnStr.Trim();
            return returnStr;
        }
    }
}
240
21 марта 2008 года
aks
2.5K / / 14.07.2006
Ini файлы - рудимент. Оно вам действительно надо?
Если недо - ну руками парсить. Или поискать какойнить парсер для них. Наверняка есть. На http://www.cpodeproject.com хотябы.
14K
21 марта 2008 года
stimpi
100 / / 04.09.2007
Ну от меня ничего не зависит, приложение уже написано и шлет баг репорты автоматически с .ini файлом, по которому нужно будет попределять продукт и еще кучу всячины, через API функцию все ОК
391
22 марта 2008 года
Archie
562 / / 03.02.2005
Это почему же ini-файлы рудимент? Иной раз намного эффективнее того же xml, который пихают где надо и не надо.
5.5K
22 марта 2008 года
[Veter]
91 / / 25.09.2007
http://www.codeproject.com/KB/cs/readwritexmlini.aspx
Неплохая библиотека, сам юзаю и пока не жалуюсь...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог