C# и Ini файлы

Тема в разделе ".NET", создана пользователем Lynch, 12 сен 2007.

Статус темы:
Закрыта.
  1. Lynch

    Lynch Гость

    Подкиньте плз примерчик работы с ini файлами на C#. Искал, но так и не смог найти сам (
    Если вообще есть, что-нибудь готовое для работы с ними. Просто на дельфе видел такое, подумал может и тут такое есть, чтобы не писать свое чего-то.
     
  2. Lynch

    Lynch Гость

    Да действительно ini уже не модно, щас оказывается уже модно xml особенно если под .NET. Но работу с xml файлами я тож так и не нашел. Сложно чего-то найти, когда данная технология используется не только для этого. Мне надо просто хранить настройки программы в отдельном файлике, но чтобы он и читабельный был, а не просто значения в столбик. Подкиньте плз какую-нибудь ссылочку по работе с xml файлами, записью и чтением их. Спасибо.
     
  3. Pasha

    Pasha Гость

  4. Well Wisher

    Well Wisher Гость

    По поводу ini-файлов. Как-то меня тоже заинтересовал подобный вопрос. За вечерок сел и написал dll-ку, используя стандартные вызовы Win32 API. Например:
    [DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
    public static extern int GetPrivateString(string section, string key, string def, StringBuilder buffer, int size, string path);

    И через констуктор класса сделал обращения:

    private const int SIZE = 1024;
    public string Path = String.Empty;

    public Ini(string path)
    {
    this.Path = path;
    }

    public string GetPrivateString(string section, string key)
    {
    StringBuilder buffer = new StringBuilder(SIZE);
    GetPrivateString(section, key, null, buffer, SIZE, this.Path);
    return buffer.ToString();
    }

    Все работает без сучка и задоринки. Подробности по функциям API смотри в MSDN. Но, действительно, лучше использовать Application Settings. Чем и пользуюсь.
     
  5. Pasha

    Pasha Гость

    Для: Well Wisher
    GetPrivateProfileString
    This function is provided only for compatibility with 16-bit Windows-based applications.
    32-х битная винда появилась 14 лет назад :)
     
  6. Well Wisher

    Well Wisher Гость

    kernel32.dll великолепно справляется со своей работой и на 32-х разрядной винде. А в MSDN, очевидно, говорится о том, что данная функция работает также и на 16-разрядной.
    К тому же, если вспомнить, то даже на 95-ой все обращения к ini-файлам осуществлялись посредством этих функций. И на моей висте все работает отлично. Факт. Как это объяснить?
     
  7. Pasha

    Pasha Гость

    <!--QuoteBegin-Well Wisher+14:09:2007, 16:50 -->
    <span class="vbquote">(Well Wisher @ 14:09:2007, 16:50 )</span><!--QuoteEBegin-->kernel32.dll великолепно справляется со своей работой и на 32-х разрядной винде. А в MSDN, очевидно, говорится о том, что данная функция работает также и на 16-разрядной.
    [snapback]78350" rel="nofollow" target="_blank[/snapback]​
    [/quote]Нет, в MSDN, очевидно, сказано, что эта функция существует только для того, чтобы старые 16-ти разрядные приложения запускались под вистой. И что приложения должны (не могут, а именно должны) хранить настройки в реестре. Полностью мегафраза звучит так: <!--QuoteBegin-MSDN+-->
    <span class="vbquote">(MSDN)</span><!--QuoteEBegin-->This function is provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry.[/quote]
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей