C#, способы хранения настроек программы
В интернете приведено очень много способов хранения настроек программы, но все они как-то разбросаны, поэтому я решил их собрать вместе и расписать, как этим пользоваться.
C# и app.config
На хабре уже была посвящена этому тема, поэтому… перейти
C# и Properties.Settings
Информация о Properties.Settings
Организация Properties.Settings — это обычный xml файл, который можно найти в папке пользователя:
С:\ Users \ [user name] \ AppData \ Local \ [ (Project Name) or (AssemblyCompany) ] \ [name project_cashBuild] \ [AssemblyVersion] \ user.config
Для начала нам нужно создать такие переменные для Properties.Settings. Перейдем в Properties -> Settings.settings:
Я создал 3-и переменные и выбрал область их использования: 2- область пользователь и 1- приложение.
Различие между областями просты. Область приложения можно только читать, а пользователь — изменять и читать.
Вернемся к переменным:
- Version — версия нашей программы. Определил ее строкой и областью приложение. Т.к. версия может содержать буквы (например, b — от beta). А область выбрал, чтоб не менялась наша версия приложения (т.к. AssemblyVersion редко кто использует).
- Save_text — это переменная, куда мы будем сохранять наш текст.
- open_sum — сколько раз мы открыли программу.
Результаты работы программы
Первый запуск, мы видим, что кол-во запусков равно 1. И теста в richTextBox1 нет.

Теперь напишем и сохраним текст.

При втором запуске мы видим, что текст сохранен, и кол-во запусков уже 2-ва.

Очень удобно использовать этот объект, если надо работать в разных областях видимости в одном проекте. Метод хорош, когда вам не надо, чтоб рядовой пользователь рылся в файлах настройки программы.
C# и ini-файлы
С ini-файлами все на оборот, они лежат в папке рядом с программой, что позволяет пользователю изменить настройки вне-программы. Данный способ хорош, если настройки программы заносятся вручную. Например, эмулятор для запуска игры без лицензии (тотже revLoader).
Теперь перейдем к нашей теме. Для работы с таким типом файлов, нам нужно создать класс по работе с ним. Создаем класс, например «IniFile», подключаем пространство имен, которых нет:
А теперь разбираем по-порядку:
Теперь переходим в основную программу.
Результаты работы программы
При первом запуска, у нас нет файла config.ini. Поэтому при проверке возвращаются fasle и мы приравниваем окно к минимальным параметрам.
Меняем параметры окна и жмем «Применить»
Редактируем файл config.ini руками и жмем загрузить.
На этом все, в следующий раз опишу работу с xml файлами и с бинарными файлами.
Что такое Конфиг CS 1.6 и полная настройка CFG!
Что такое конфиг в кс 1.6? Как его настроить для оптимального качества игры? Ответы на эти вопросы внутри темы.
В этой теме я расскажу Вам что же такое конфиги в кс 1.6 и как ими пользоваться.

Конфиг (config) — это файл конфигурации, используемый для хранения настроек различных программ. В CS — это такой же файл, содержащий определенный перечень игровых параметров и настроек, которые рассмотрим ниже.
- Клиентские:
- настройки мыши;
- настройки видео обработки (графики) в игре;
- настройки звука в игре;
- настройки радара;
- настройки рейтов клиента;
- настройки клавиш и многое другое.
- Серверные (конфиги server.cfg, amx.cfg и т.д.):
- серверные настройки (например, время раунда, баланс игроков в командах, время для взрыва C4, время фризтайма, активация sv_cheats и д.р.).
- Продвинутые клиентские:
- скрипты (алиясы).
В КС алиясы это различный набор действий, выполняющийся автоматически при нажатии определённой клавиши (например: скрипт закупки оружия, скрипт распрыжки, различные запрещенные комбинации и т. п.)
Все конфиги это файлы вида name.cfg, где:
- name — имя конфига.
- cfg — расширения конфига.
Где хранятся конфиги в кс 1.6?
Место хранения конфига в CS 1.6 зависит от версии игры.
-
для non-steam (пиратки)
где D:\ ваш жесткий диск.
Конфиги для Counter Strike 1.6 можно открывать или редактировать с помощью любого текстового редактора, например «Блокнот» или «World pad». Открыв конфиг Вы увидите различные параметры. Все команды конфига идентичны командам, которые можно прописать в консоли, непосредственно запустив саму игру.

Виды конфигов
Разберемся какие бывают типы конфигов в CS 1.6, как они запускаются и что вообще с ними делать:
- autoexec.cfg — всегда при загрузке игры автоматически запускается самым первым. При написании скриптов и своего конфига рекомендуется писать алиасы (и любые другие настройки которые Вы больше не будете менять) именно сюда, т. к. они будут распространяться на все, запущенные позже конфиги (при условии, что в них не будет команды unbind). Данный подход исключает дублирование основных консольных команд. Если данного когфига нет в папке cstrike то можно создать его вручную, но обязательно с именем «autoexec.cfg», только так и никак иначе он будет первый запускаться автоматически.
- config.cfg — стандартный конфиг, который всегда автоматически запускается вторым после «autoexec.cfg». В нем по умолчанию прописаны стандартные настройки управления в игре (содержатся бинды основных клавиш) и все остальные настройки (графика, звук и т. д.).
- userconfig.cfg — конфиг пользователя, содержащий настройки конкретного пользователя. Этого конфига может и не быть в игре по умолчанию, можно создать и его, причем с любым названием, например «myconfig.cfg», «ru.cfg», «bot.cfg» и т. д., это не важно, т. к. его запуск осуществляется 2-мя способами, описанными ниже:
- В конце конфига «config.cfg» прописать команду «exec userconfig.cfg» (запуск userconfig.cfg), что позволит запускать ваш конфиг автоматически.
- Непосредственно в игре открыть консоль и прописать команду «exec userconfig.cfg» . В этом случае, при перезапуске КС, необходимо повторять эту процедуру.
Примечание 1 : userconfig.cfg — название конфига, так что если ваш конфиг называется иначе — Вы должны вписывать именно СВОЕ название!
Примечание 2 : команда «exec» запускает конфиг именно с папки /cstrike или /cstrike-russian, поэтому Ваш конфиг должен находиться именно там. Вы так же можете создать в директории /cstrike или /cstrike-russian отдельную папку для конфигов, тогда в команде «exec» следует прописать путь к конфигу, например ваша папка называется myconfig, а конфиг в ней spawn.cfg, тогда следует прописать — exec myconfig/spawncfg
Примечание 3 : в большинстве случаев в config.cfg в конце уже стоит строка запуска exec «userconfig.cfg» в таком случае можно просто создать ваш конфиг с названием userconfig.cfg и он будет запускаться автоматически.
Настройка конфига
При открытии конфига, например, стандартного, видим:
Хороший конфиг начинается с команды unbindall — это удаление привязки определенных действий к клавишам клавиатуры или кнопкам мыши, а после этого уже назначаются другие бинды. Это необходимо для разбинда каких-то старых, ненужных настроек. После этого можно вписать clear — это полная очистка консоли. Затем пишем свой ник, под которым Вы будете играть
Кавычки нужно прописывать только тогда, когда в Вашем нике есть пробелы, т. е. ник состоит из нескольких слов. Иначе, если не поставить кавычки — у Вас в нике будет только первое слово до пробела.
Теперь необходимо выставить чувствительность мыши
такая чувствительность выставлена по умолчанию. Чем выше значение, тем сложнее убить Вас сзади, т. е. вы всегда сможете резко обернуться назад, на звук, и дать хедшот, если конечно уровень игры позволяет. Обычно, сенс выставляют такой, чтобы при одном махе влево или вправо, вы могли обернуться на 180 градусов. Так же не забудьте отключить акселерацию мыши, как это сделать можно прочитать в этой теме.
- zoom_sensitivity_ratio «1.2» — чувствительностью мыши при включённом снайперском прицеле (по умолчанию стоит — 1.2)
- hud_fastswitch «1″ — команда включает быструю смену оружия ( нажатие на 1,2 или 3 не требует подтверждения выбора оружия кликом на mouse1.
- _cl_autowepswitch «0″ — не брать в руки подобранное оружие! Многие игроки про уровня, зная что их оппонент использует настройку этой команды 1, делаю следующую фишку: во время ближнего боя, когда заканчиваются патроны, выкидывают своё оружие прям под ноги врага, естественно, у него оно сразу включается, а патронов — нет, можно резать.
- _cl_minmodels «0″ — отображать все скины игроков. Если выставите значение «1» , то все игроки будут с одним скином за террористов и с одним за контров. Полезно при слабых ПК.
- cl_dynamiccrosshair «1″ — динамический прицел вкл (если приседаешь прицел уменьшается, прыгаешь — расширяется), можно поставить «0» — прицел всегда будет одного размера.
- setinfo «_vgui_menus» «0» — меню закупки без фотографий и описаний.
Бинды быстрой авто-закупки
bind «F1» «autobuy» — авто закупка (M4A1/AK-47),+ броня,+ все патроны, +набор для обезвреживания бомбы. Разумеется, всё будет приобретено только в том случае, если хватит денег.
bind «F2» «rebuy» — повтор закупки (оружие и снаряжение, которое было куплено в предыдущем раунде).
bind «F3» «vesthelm;primammo;secammo» — купить ВСЕ патроны, с каской и бронёй.
bind «F4» «hegren;flash;flash;sgren» — купить ВСЕ гранаты.
Существует команда для отключения всплывающих подсказок вовремя игры (полезна для новичков)
Как создается User.config и как он используется
Я начал читать о файлах конфигурации и прочитал о user.config. Гуглил об этом, но не смог найти, как он создается и как используется. Также прочитайте, что для каждого пользователя будет создан отдельный user.config. Даже читал вопросы в StackOverflow, но они не помогли. Может ли кто-нибудь указать мне на правильные ресурсы. Заранее спасибо 🙂
Спасибо @Ramesh, @Michael и @Frozendragon за ваши ответы. Просмотрел опубликованные вами статьи. Предположим, что у меня есть веб-приложение, и его используют 3 пользователя с именами «A», «B» и «C». У меня есть app.config, в котором я указал значения по умолчанию. Я прочитал, что эти значения могут быть изменены соответствующим образом и будут сохранены в файлах UserName.config. Здесь я теряюсь. Если значения сохраняются в соответствующих профилях пользователей, как они возвращаются, когда тот же пользователь пытается снова открыть приложение? Как мое приложение узнает, в каких файлах смотреть ?
задан 10 июля ’12, 07:07
Веб-приложения не могут иметь настройки приложений с пользовательской областью. Для веб-приложений вам потребуется обрабатывать пользовательские настройки другим способом. — user111013
Что такое файлы конфигурации и как их редактировать?

Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.
Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.
Что такое файлы конфигурации?
Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.
Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированными в программе, они настраиваются пользователем и, как правило, хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных SQLite. как их конфигурационные файлы).
Удивительно, но не существует определенного стандарта о том, как должны работать файлы конфигурации или как они должны выглядеть. Это полностью зависит от прихоти разработчика программы.
Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.

Если вы пользователь Linux, вы, вероятно, будете знакомы с ними, так как многие основные задачи обслуживания требуют редактирования файлов конфигурации. Если вы хотите настроить GRUB для двойной загрузки вашей системы загрузку загрузку или настройке веб-сервера настроить веб-сервер , вам придется иметь дело с ними.
Хотя это не исключительно Linux вещь. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.
Как выглядят файлы конфигурации?
Теперь давайте взглянем на некоторые реальные конфигурационные файлы. Как мы упоминали ранее, они бывают разных форм и размеров. Один файл конфигурации, с которым вы почти наверняка знакомы, — это файл hosts, который используется в Windows, Mac и Linux для сопоставления IP-адресов с именами узлов вручную.

В Windows вы можете найти его в папке c: \ windows \ system32 \ drivers \ etc \ hosts . На Mac и Linux это будет в / etc / hosts .
Как вы заметите, файл hosts использует пробелы для разделения элементов, причем каждое имя хоста имеет свою собственную строку. Кроме того, файл hosts позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа хеша.

В Linux и Mac OS X некоторые программы требуют, чтобы пользователь сохранял файл конфигурации в домашнем каталоге с точкой в начале имени файла. Эти конфигурационные файлы иногда имеют расширение .rc, и в разговорной речи называются «точечные файлы».
Одна из программ, которая следует этому конкретному соглашению, — текстовый редактор Vim . В прошлом мы говорили о том, как настроить VIM, отредактировав его конфигурационный файл настроек настроек
Файлы конфигурации даже используются в видеоиграх для определения и управления некоторыми действиями, такими как сопоставления клавиш. Конфигурационный файл ниже взят из Black Mesa — фанатского ремейка оригинального Half Life .

В оригинальной версии Deus Ex , выпущенной в 2000 году, пользователю фактически пришлось отредактировать файл конфигурации, чтобы включить читы!
Как редактировать файлы конфигурации
Итак, теперь мы знаем, для чего используются файлы конфигурации, давайте поговорим о том, как мы можем их редактировать.
Для этого вам понадобится текстовый редактор. Не используйте текстовый процессор, так как они могут добавить форматирование в файл, что помешает их чтению программой.
Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows существует множество отличных текстовых редакторов сторонних производителей, включая Notepad ++, Atom и Sublime Text Editor.
В Linux наиболее близким аналогом Notepad является Gedit . Вы также можете рассмотреть возможность использования текстового редактора командной строки, такого как Nano или Vim . Ради большей эффективности я сильно склоняюсь к текстовому редактору Vim. Это позволяет мне легко переходить на разные позиции в файле конфигурации, просто используя всего несколько нажатий клавиш.
В Mac OS X (или MacOS Sierra, скоро станет известно, ), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает несколько текстовых редакторов командной строки, таких как Vim и Nano.
Когда вы редактируете файл, важно убедиться, что вы соблюдаете его соглашения. Это можно решить, просто взглянув на это. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения. Другие заставят вас прочитать некоторую документацию или пару постов в блоге.
Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.
Что, если это не работает?
Наконец, давайте коснемся того, что происходит, когда что-то идет не так. По моему опыту, проблемы, связанные с редактированием конфигурационных файлов, имеют тенденцию делиться на два лагеря.
Первый — это разрешения. Если вы не можете сохранить свои изменения, это может быть потому, что вы пытаетесь сделать это как обычный пользователь. Чтобы предотвратить случайное повреждение, многие конфигурационные файлы доступны для редактирования только тем, у кого есть права администратора.
Исправить это легко. В Mac и Linux попробуйте повысить свои права с помощью команды sudo. Итак, если вы редактировали файл hosts, вы бы запустили:
В Windows щелкните правой кнопкой мыши Блокнот (или любой текстовый редактор, который вы используете) и выберите Запуск от имени администратора .

Вторая распространенная проблема — ошибка пользователя. Если что-то не работает, это может быть ваша вина. Убедитесь, что вы не сделали никаких опечаток, и что вы следовали соглашениям файла конфигурации. Я знаю, это кажется очевидным, но простая орфографическая ошибка или забывание закрыть пару речевых меток может сделать весь файл бесполезным.
Хороший способ избежать проблем — сделать копию файла конфигурации, прежде чем вносить какие-либо изменения. Таким образом, если что-то пойдет не так, вы можете восстановить копию и начать заново!
Файлы конфигурации важны
Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.
Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux от начального до среднего уровня? Позвольте мне знать в комментариях ниже.