Аннотация: В этой лекции вы познакомитесь с возможностью сохранять различные настройки программы в специальные ini-файлы.
Очень часто, особенно в крупных проектах, бывает необходимо сохранить некоторые настройки программы, чтобы потом их применить при повторной загрузке. Представьте себе такую ситуацию – вы написали программу для клиента. Он ее запустил, и она появилась в центре окна, как вы и планировали.
Однако ему показалось это неудобным, и он сдвинул ее в сторону и уменьшил размеры окна, чтобы параллельно работать еще с каким-то приложением. Все прекрасно, программа делает свое дело и пользователь доволен. Однако, когда на следующий день он снова загрузит эту программу, она опять окажется по центру экрана, и будет иметь первоначальные размеры.
Пользователю снова придется сдвигать ее в сторону и уменьшать размеры формы. Пустячок? Однако из таких вот пустячков и складывается мнение о программисте, и если мнение это будет плохим, заказчиков у вас не будет! Программист должен предусмотреть в своей программе все требования и желания пользователя, даже такие, о которых он и сам еще не догадывается.
Сохранение и загрузка настроек. Полные настройки и вкладки. QUIK
Ну скажите, как пользователь , заказавший вам программу может знать, что форма при программировании может занимать разное положение – по центру экрана или рабочего стола, или положение при разработке? Пока он не столкнется с вашей программой на практике, ему и в голову не придет указать вам, что программа должна запоминать свои настройки!
В самом простейшем случае требуется сохранить только 5 параметров – состояние окна (свернутое, развернутое), его положение от левой и верхней границы рабочего стола, его ширину и высоту. А если вы будете создавать более сложную программу, с панелью настроек, где есть куча чекбоксов и радиокнопок? Там пользователь может изменить ваши настройки » по умолчанию», и поставить собственные. Представьте, если пользователь потратил полчаса на то, чтобы настроить вашу программу «под себя», а при повторном запуске обнаружил, что все его настройки не сохранились!
Для сохранения пользовательских настроек существует два способа – ini-файлы и системный реестр Windows . Каждый из этих способов имеет свои плюсы и минусы.
Если вы сохраняете настройки в реестр Windows , то они скрыты от пользователя, следовательно, он ничего не сможет в них испортить. С другой стороны, если на компьютере зарегистрированы несколько пользователей, то каждый сможет изменить настройки программы «под себя». Минус в том, что если Windows будет переустановлена, придется переустанавливать и программу, так как она будет отсутствовать в реестре.
Если же вы сохраняете настройки в ini- файл , программа сохранит настройки и при переустановке операционной системы. Кроме того, сохранение настроек в ini- файл реализовать проще. В этой лекции мы научимся работать только с ini-файлами.
INI-файлы
У INI – файлов есть много преимуществ. С ними работать просто и удобно, они поддерживают три типа данных – String , Integer и Boolean . Кроме того, если бы мы сохраняли настройки в простой текстовый файл , то при изменении одной из настроек требовалось бы перезаписывать весь файл , а ini- файл позволяет перезаписать только этот параметр .
Как сохранить настройки рабочего стола – Торговый терминал QUIK Школа Трейдинга
Конечно, есть и некоторые правила использования такого рода файлов.
Первым делом, если вы собираетесь работать с ini-файлами, в секцию uses, сразу под словом interface , требуется добавить модуль inifiles , в нем описаны все данные для работы с ini-файлами. Добавить модуль просто – после последнего указанного в списке модуля стоит точка с запятой. Замените ее на запятую, добавьте слово inifiles , а затем поставьте точку с запятой.
Далее. По умолчанию, ini-файлы создаются в директории, где установлен Windows . Там появляется файл с расширением *.ini и вашими настройками. Это не всегда удобно, особенно если предположить, что Windows может быть переустановлен. Гораздо лучше создавать файл в той директории, где установлена ваша программа . А как узнать эту директорию?
ExtractFilePath(Application.ExeName)
Изучим создание ini-файла на практике. Создайте новое приложение . В секцию uses добавьте модуль inifiles .
Прежде всего, пропишем сохранение параметров при закрытии программы. Для этого создайте обработчик события OnDestroy для формы. Такое событие случается при разрушении объекта форма, то есть, при завершении работы с программой. Создайте раздел var и пропишите там переменную типа ini- файл :
var ini : TIniFile; //объявляем переменную типа inifile begin
Далее мы должны создать файл , если его не существовало, или открыть его, если он уже есть:
ini := TInifile.Create(ExtractFilePath(Application.ExeName)+’my.ini’);
Обратите внимание, что мы создаем файл в той же директории, откуда запущена программа . Если бы мы указали просто
ini := TInifile.Create(‘my.ini’);
то файл был бы создан в директории Windows ! Далее сохраним позицию окна, то есть свойства Left и Top формы:
//сохраняем позицию окна: ini.WriteInteger(‘Position’, ‘L’, Form1.Left); ini.WriteInteger(‘Position’, ‘T’, Form1.Top);
У ini-файла есть три процедуры для записи данных различных типов. WriteInteger , WriteString и WriteBool . Соответственно, эти функции записывают целое число , строку и логический тип. У этих функций есть по 3 параметра. Первый – это раздел ini – файла.
В самом файле он выходит в квадратных скобках. Раздел вы можете назвать как угодно, не обязательно Position . Вторым параметром является название сохраняемого параметра, в примере этот параметр мы указали в виде букв ‘L’ и ‘T’, хотя можно было бы написать и ‘ Left ‘, ‘ Top ‘ или как-то иначе.
Третьим параметром функции является его значение . Поскольку свойства Left и Top формы имеют значения в виде целого числа, мы используем функцию для записи целых чисел WriteInteger . В результате приведенного примера в ini – файле появится надпись, подобная этой:
[Position] L=14 T=50
Далее попробуем сохранить размеры формы (свойства Width и Height ). Для этого в ini– файле создадим раздел Size :
//сохраняем размеры окна: ini.WriteInteger(‘Size’, ‘W’, Form1.Width); ini.WriteInteger(‘Size’, ‘H’, Form1.Height);
После того, как мы сохранили параметры в ini- файл , его необходимо закрыть:
//закрываем файл: ini.Free;
Все, файл закрыт и настройки сохранены. Сохраните проект, откомпилируйте его и посмотрите, как он работает. Откройте созданный ini – файл , это простой текстовый файл , который вы сможете прочитать, и даже отредактировать.
Однако мы сделали только половину дела. Настройки то мы сохранили, а как их прочитать? Делается все это точно также, только наоборот. Вместо свойства разрушения формы используем свойство ее создания ( onCreate ), вместо записи используем чтение, и вместо того, чтобы значения свойств формы записывать в файл , мы будем читать их из файла и присваивать эти значения свойствам форм. Соответственно, мы имеем три процедуры считывания параметров из ini-файла: ReadInteger , ReadString и ReadBool .
Итак, делаем обработчик событий для формы onCreate :
procedure TForm1.FormCreate(Sender: TObject); var ini : TIniFile; //объявляем переменную типа inifile begin //теперь создаем объект типа TIniFile: ini := TInifile.Create(ExtractFilePath(Application.ExeName)+’my.ini’); //применяем позицию окна: Form1.Left := ini.ReadInteger(‘Position’, ‘L’, 329); Form1.Top := ini.ReadInteger(‘Position’, ‘T’, 261); //читаем размеры окна: Form1.Width := ini.ReadInteger(‘Size’, ‘W’, 384); Form1.Height := ini.ReadInteger(‘Size’, ‘H’, 312); //закрываем файл: ini.Free; end;
Здесь интересен третий параметр в функциях записи. Казалось бы, значения нам не нужны, мы берем их из указанных разделов. Но третий параметр обязателен, в нем указывается значение » по умолчанию».
При создании формы придайте ей подходящий размер и положение и посмотрите значения свойств Left , Top , Width и Height . Эти значения вы и запишете в качестве принятых по умолчанию. Если файла еще не было или произошла какая-то ошибка при чтении данного параметра, например, не найдена нужная строка, будет применяться значение по умолчанию. Если же нужная строка прочитана, то будет применяться то значение , которое указано в ней.
Сохраните проект, откомпилируйте его и посмотрите, как работает программа . Полученный ini- файл будет содержать такой текст:
[Position] L=329 T=261 [Size] W=384 H=312
Попробуйте перед запуском программы изменить какой-нибудь параметр , например, укажите
Источник: intuit.ru
Использование Visual C# для хранения и извлечения настраиваемых сведений из файла конфигурации приложения
В этой статье описывается, как хранить настраиваемые сведения из файла конфигурации, который можно получить позже во время выполнения связанным приложением. Это полезно, если необходимо определить данные, связанные с приложением.
Исходная версия продукта: Visual C #
Исходный номер базы знаний: 815786
Требования
В следующем списке приведены рекомендуемые оборудование и программное обеспечение, которые вам нужны:
- Microsoft Windows
- Visual C #
В этой статье предполагается, что вы знакомы со следующими разделами:
- язык XML
- Файлы конфигурации .NET
Создание консольного приложения, которое считывает файл конфигурации
Параметры приложения можно хранить в файле конфигурации, связанном с приложением. Файлы конфигурации сохраняются в формате XML.
Пространства System.Configuration имен и System.Collections.Specialized пространства имен в платформа .NET Framework содержат необходимые классы для получения сведений из файла конфигурации приложения .NET во время выполнения.
Чтобы создать консольное приложение, которое считывает содержимое связанного файла конфигурации во время выполнения, выполните следующие действия.
- Запустите Visual Studio .NET или Visual Studio.
- В меню Файл выберите пункт Создать, а затем выберите Проект.
- Выберите Visual C# вразделе «Типы проектов», а затем консольное приложение в разделе «Шаблоны». Назначь проекту имя ConConfig. По умолчанию Visual C# создает класс с именем Program.
Примечание. В Visual Studio .NET выберите проекты Visual C# в разделе «Типы проектов», а затем консольное приложение в разделе «Шаблоны». Назначь проекту имя ConConfig. По умолчанию Visual C# создает класс с именем Class1.
Добавьте раздел с элементами в файл конфигурации между тегами и тегами . Например, следующий файл конфигурации содержит раздел, в котором указаны три пары «ключ-значение»:
Примечание. Эти инструкции должны отображаться перед любыми другими операторами в файле.
using System.Configuration; using System.Collections.Specialized;
- В меню «Проект » выберите » Добавить ссылку».
- В диалоговом окне «Добавление ссылки» выберите вкладку .NET .
- Найдите и выберите имя компонента System.Configuration .
- нажмите OK.
string sAttr;
sAttr = ConfigurationManager.AppSettings.Get(«Key0»);
Console.WriteLine(«The value of Key0 is «+sAttr);
NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
foreach (string s in sAll.AllKeys) Console.WriteLine(«Key: «+ s + » Value: » + sAll.Get(s)); Console.ReadLine();
Полный список кода
using System; using System.Configuration; using System.Collections.Specialized; namespace ConConfig < class Program < static void Main(string[] args) < string sAttr; // Read a particular key from the config file sAttr = ConfigurationManager.AppSettings.Get(«Key0»); Console.WriteLine(«The value of Key0: » + sAttr); // Read all the keys from the config file NameValueCollection sAll; sAll = ConfigurationManager.AppSettings; foreach (string s in sAll.AllKeys) Console.WriteLine(«Key: » + s + » Value: » + sAll.Get(s)); Console.ReadLine(); >> >
Этот код предназначен для платформа .NET Framework версии 2.0. Если вы используете версию платформа .NET Framework 1.0 или платформа .NET Framework 1.1, ConfigurationManager измените все экземпляры класса ConfigurationSettings на .
Полный список файлов конфигурации (ConConfig.exe.config)
Убедитесь, что он работает
Нажмите клавишу F5, чтобы выполнить код. В окне консоли должны отображаться пары » ключ-значение» из раздела связанного файла конфигурации следующим образом:
The value of Key0: 0 Key: Key0 Value:0 Key: Key1 Value:1 Key: Key2 Value:2
Устранение неполадок
- Файл конфигурации сохраняется в формате XML. Убедитесь, что вы соблюдали все правила синтаксиса XML. Помните, что XML учитывает регистр. Если XML-код имеет неправильный формат или элемент имеет ошибку, вы получите System.Configuration.Configuration исключение. Например, при добавлении ключевого атрибута элемента с прописным буквой K вместо нижнего регистра k или если раздел отображается как (с верхним регистром A, а не в нижнем регистре a), вы получите сообщение об ошибке.
- Файл конфигурации должен быть сохранен в той же папке, что и связанное с ним приложение.
- Для имени файла конфигурации необходимо использовать следующий синтаксис:
.< ApplicationType>.config Где — это имя приложения. — это тип приложения, например .exe . И .config является обязательным суффиксом.
Ссылки
- Свойство ConfigurationSettings.AppSettings
- Пространство имен System.Configuration
Обратная связь
Были ли сведения на этой странице полезными?
Источник: learn.microsoft.com
Сообщество MLO
Наиболее гибкое управление задачами. Работает так, как нужно Вам!
У вас есть проблемы напоминаний в MLO-Android? Ответьте: Да/Нет .
Как сохранить/загрузить настройки программы в файл
Вопросы/ответы по работе MLO на ПК
3 сообщения • Страница 1 из 1
Автор темы
Как сохранить/загрузить настройки программы в файл
Сообщение fixin » 26 май 2015, 19:29
Потому что использую на двух ПК и вообще в целях бэкапа?
Re: Как сохранить/загрузить настройки программы в файл
Сообщение WaRoX » 27 май 2015, 03:15
- Необходимые виды
- Правила автоформатирования (на одном ПК выделить все правила и нажать «Экспорт», на другом — удалить все правила и импортировать файл)
- Тему оформления (кнопки импорта/экспорта находятся в редактировании темы внутри кнопки «Еще»)
- Другие настройки программы (все, кроме темы оформления, в «Общих настройках приложения») надо перенести вручную
Re: Как сохранить/загрузить настройки программы в файл
Сообщение andrey » 27 май 2015, 09:26
1) Все основные настройки MLO хранятся в файле данных. Просто скопируйте (перенесите) его на другой компьютер — это самый простой способ.
2) Есть некоторые настройки, которые относятся ко всему приложению (короткие клавиши, прокси, последние открытые файлы и некоторые другие). Они хранятся в реестре. Нужно импортировать эту ветку:
HKEY_CURRENT_USERSoftwaremyLifeOrganized.netMyLifeSettings
Для переноса всех или только некоторых настроек файла данных, можно использовать экспорт в MLO XML или MLO Template. Здесь вы сможете выбрать какие настройки нужны. Позже эти настройки можно применить к другому файлу данных или создать на его основе новый файл данных MLO.
Источник: www.mylifeorganized.net