Реестр по сравнению с файлом INI для хранения пользователя настраиваемые параметры настройки приложения

Вы можете использовать функцию agg

import pandas as pd
import numpy as np

df.groupby('something').agg({'column1': np.max, 'columns2': np.min})

47
задан Kurt W. Leucht 6 June 2009 в 02:57
поделиться

10 ответов

Профессионалы файла конфигурации:

  1. Легкий сделать. Не должны знать Windows API calls. Просто необходимо знать интерфейс файлового ввода-вывода языка программирования.
  2. Портативный. При портировании приложения на другую ОС Вы не должны изменять свой формат настроек.
  3. Доступный для редактирования пользователем. Пользователь может отредактировать файл конфигурации за пределами выполнения программы.

Профессионалы реестра:

  1. Безопасный. Пользователь не может случайно удалить файл конфигурации или повредить данные, если он не знает о regedit. И затем пользователь просто напрашивается на неприятности.
  2. я не опытный программист Windows, но я уверен, что использование реестра облегчает делать другие определенные для Windows вещи (определенные для пользователя настройки, материал администрирования сети как групповая политика, или безотносительно).

, Если бы Вам просто нужен простой способ хранить информацию конфигурации, я рекомендовал бы файл конфигурации, с помощью INI или XML как формат. Я предлагаю использовать реестр, только если существует что-то определенное, Вы хотите выйти из использования реестра.

39
ответ дан Lipis 26 November 2019 в 19:41
поделиться

Реестр оптимизирован для быстрого доступа и легкого обновления, и это - единственный способ сделать определенные определенные для Windows вещи как соединение с расширением. И можно проигнорировать аргумент об удалении единственного каталога для удаления программы - Windows Vista не позволит Вам изменить файлы в каталоге Program Files, таким образом, Ваша конфигурация должна будет войти в различную папку так или иначе.

существует общее руководство для программирования Windows - делают вещи путем, Microsoft ожидает Вас к, и Ваша жизнь будет намного легче.

Однако я вижу обращение файла INI, и я не обвинил бы никого в рассмотрении его.

1
ответ дан Mark Ransom 26 November 2019 в 19:41
поделиться

Ваш тот Приложения, который установлен с Программой установки или является ею просто "Извлечение и Выполнение"? В первом случае посмотрите на за и против, обрисованные в общих чертах здесь. Но для Извлечения и выполненный, Реестр является, по-моему, "остановкой", поскольку люди ожидают быть в состоянии просто удалить папку приложения для избавлений от программы.

-2
ответ дан Michael Stum 26 November 2019 в 19:41
поделиться

Я соглашаюсь с Daniel. Если бы это - крупное приложение, я думаю, что сделал бы вещи в реестре. Если это - небольшое приложение, и Вы хотите иметь аспекты его настраиваемый пользователем, не заставляя конфигурацию сформироваться, пойдите для быстрого файла INI.

я обычно делаю парсинг как это (если формат в .ini файле является опцией = значение, 1 на строку, комментарии, запускающиеся с #):

static void Parse()
{
    StreamReader tr = new StreamReader("config.ini");
    string line;
    Dictionary<string, string> config = new Dictionary<string, string>();

    while ((line = tr.ReadLine()) != null)
    {
        // Allow for comments and empty lines.
        if (line == "" || line.StartsWith("#"))
            continue;

        string[] kvPair = line.Split('=');

        // Format must be option = value.
        if (kvPair.Length != 2)
            continue;

        // If the option already exists, it's overwritten.
        config[kvPair[0].Trim()] = kvPair[1].Trim();
    }
}

Редактирование: Извините, я думал, что Вы определили язык. Реализация выше находится в C#.

2
ответ дан Markus Safar 26 November 2019 в 19:41
поделиться

Существует еще одно преимущество для использования файла INI по реестру, который я не видел упомянутый: Если пользователь использует своего рода основанное на объеме/файле шифрование, они могут заставить файл INI быть зашифрованным довольно легко. С реестром это, вероятно, будет более проблематично.

3
ответ дан On Freund 26 November 2019 в 19:41
поделиться

Использование ini файла, в том же каталоге как приложение, позволяет создать резервную копию его с приложением. Таким образом, после перезагрузки ОС Вы просто восстанавливаете каталог приложения, и у Вас есть своя конфигурация путем, Вы хотите его.

4
ответ дан EvilTeach 26 November 2019 в 19:41
поделиться

Существует подобный вопрос здесь , который покрывает некоторые за и против.

я предложил бы не использовать реестр, если для Вашего приложения абсолютно не нужен он. От моего понимания Microsoft пытается препятствовать использованию реестра из-за гибкости файлов настроек. Кроме того, я не рекомендовал бы использовать .ini файлы, но вместо этого использовать часть из встроенная функциональность к.Net для того, чтобы сохранить настройки пользователя/приложения.

4
ответ дан Greg 26 November 2019 в 19:41
поделиться

У Jeff Atwood есть великое статья о реестре Windows и почему лучше для использования.INI файлов вместо этого.

Моя жизнь была бы чертовски много легче, если бы на параметры настройки приложения были сохранены в месте, то я мог бы легко видеть их, управлять ими и создать резервную копию их. Как, скажите... в файлах INI.

  • реестр единая точка отказа . Вот почему каждый реестр, редактируя подсказку, которую Вы будете когда-либо находить, запускается с большой кричащей правовой оговорки о том, как можно повредить компьютер с regedit.
  • реестр непрозрачен и двоичный . Так, как мне не нравится налог угловой скобки, по крайней мере, файлы конфигурации XML довольно человекочитаемы, и они позволяют столько комментариев, сколько Вы считаете целесообразным.
  • реестр должен быть в синхронизации с файловой системой . Удалите приложение, не "удаляя" его, и Вас оставляют с устаревшим хламом реестра. Или если приложение имеет плохо записанный деинсталлятор. Файловая система больше не является оператором записи - это должно быть сохранено в синхронизации с реестром так или иначе. Это - общее нарушение принципа DRY.
  • реестр монолитный . Скажем, Вы хотели переместить приложение в различный путь на Вашей машине, или даже к различной машине в целом. Удача, извлекающая соответствующие настройки для той конкретное приложение из гигантского реестра tarball. Данному приложению обычно разбрасывали десятки настроек на всем протяжении реестра.
25
ответ дан Stevoisiak supports Monica 26 November 2019 в 19:41
поделиться

Согласно документации для GetPrivateProfileString, необходимо использовать реестр для того, чтобы хранить информацию инициализации.

Однако в настолько говорящем, если Вы все еще хотите использовать .ini файлы и использовать стандартные API профиля (GetPrivateProfileString, WritePrivateProfileString, и т.п.) для доступа к ним, они обеспечивают встроенные способы автоматически обеспечить "виртуальные .ini файлы", поддержанные реестром. Взаимовыгодный!

4
ответ дан Chris Jester-Young 26 November 2019 в 19:41
поделиться

Как Daniel указал, хранение данных конфигурации в реестре дает Вам опцию использовать Администраторские Шаблоны. Таким образом, можно определить Администраторский Шаблон, использовать его в Групповой политике и администрировать конфигурацию приложения, всей сети. В зависимости от природы приложения это может быть большим благом.

2
ответ дан 26 November 2019 в 19:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: