Аватар для Jesterru
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299

Неправильно сохраняются настройки

29.03.2017, 18:25. Показов 1026. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делал игру кликер для конкурса.
Начал делал сохранение/загрузку данных. (Раньше такое никогда не делал)
В итоге при открытии программы у меня настройки такие, какие стоят в настройках проекта (Проект - Свойства - Параметры)
Ну, я думаю вы понимаете, что я хочу : "Как это сделать нормально? Чтобы сохранять/загружать данные"
Код :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
       private void Main_Form_Load(object sender, EventArgs e)
        {
            EPC = Properties.Settings.Default.EPC;
            EPS = Properties.Settings.Default.EPS;
            ES = Properties.Settings.Default.ES;
            ESell = Properties.Settings.Default.ESell;
            Money = Properties.Settings.Default.Money;
 
            EPCUpgrLvl1 = Properties.Settings.Default.EPCUpgrLvl1;
            EPCUpgrLvl2 = Properties.Settings.Default.EPCUpgrLvl2;
            EPSUpgrLvl1 = Properties.Settings.Default.EPSUpgrLvl1;
            EPSUpgrLvl2 = Properties.Settings.Default.EPSUpgrLvl2;
            ESellUpgrLvl1 = Properties.Settings.Default.ESellUpgrLvl1;
            ESellUpgrLvl2 = Properties.Settings.Default.ESellUpgrLvl2;
 
            SS_Panels = Properties.Settings.Default.SS_Panels;
            SS_Bataries = Properties.Settings.Default.SS_Bateries;
            SS_Other = Properties.Settings.Default.SS_Other;
 
            AES_Control = Properties.Settings.Default.AES_Control;
            AES_Electro = Properties.Settings.Default.AES_Electro;
            AES_Housing = Properties.Settings.Default.AES_Housing;
 
            ALET_Copper = Properties.Settings.Default.ALET_Copper;
            ALET_Steel = Properties.Settings.Default.ALET_Steel;
            ALET_Other = Properties.Settings.Default.ALET_Other;
 
            SSP_Accelerator = Properties.Settings.Default.SSP_Accelerator;
            SSP_Rocket = Properties.Settings.Default.SSP_Rocket;
            SSP_Rocket = Properties.Settings.Default.SSP_Rocket;
            SSP_Sputnik = Properties.Settings.Default.SSP_Sputnik;
            SSP_Panels = Properties.Settings.Default.SSP_Panels;
        }
 
        private void Main_Form_FormClosing(object sender, FormClosingEventArgs e)
        {
            Properties.Settings.Default.EPC = EPC;
            Properties.Settings.Default.EPS = EPS;
            Properties.Settings.Default.ES = ES;
            Properties.Settings.Default.ESell = ESell;
            Properties.Settings.Default.Money = Money;
 
            Properties.Settings.Default.EPCUpgrLvl1 = EPCUpgrLvl1;
            Properties.Settings.Default.EPCUpgrLvl2 = EPCUpgrLvl2;
            Properties.Settings.Default.EPSUpgrLvl1 = EPSUpgrLvl1;
            Properties.Settings.Default.EPSUpgrLvl2 = EPSUpgrLvl2;
            Properties.Settings.Default.ESellUpgrLvl1 = ESellUpgrLvl1;
            Properties.Settings.Default.ESellUpgrLvl2 = ESellUpgrLvl2;
 
            Properties.Settings.Default.SS_Panels = SS_Panels;
            Properties.Settings.Default.SS_Bateries = SS_Bataries;
            Properties.Settings.Default.SS_Other = SS_Other;
 
            Properties.Settings.Default.AES_Control = AES_Control;
            Properties.Settings.Default.AES_Electro = AES_Electro;
            Properties.Settings.Default.AES_Housing = AES_Housing;
 
            Properties.Settings.Default.ALET_Copper = ALET_Copper;
            Properties.Settings.Default.ALET_Steel = ALET_Steel;
            Properties.Settings.Default.ALET_Other = ALET_Other;
 
            Properties.Settings.Default.SSP_Accelerator = SSP_Accelerator;
            Properties.Settings.Default.SSP_Rocket = SSP_Rocket;
            Properties.Settings.Default.SSP_Fuel = SSP_Fuel;
            Properties.Settings.Default.SSP_Sputnik = SSP_Sputnik;
            Properties.Settings.Default.SSP_Panels = SSP_Panels;
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2017, 18:25
Ответы с готовыми решениями:

Куда сохраняются настройки приложения
Здравствуйте друзья. В одном решении есть два проекта: консольное приложение и виндовс приложение. Виндовс приложение второстепенное...

Не сохраняются все настройки в почтовой программе
Пишу почтовик. На одном из этапов появилась идея - сохранять/загружать письма локально. Реализовал. Но путь сохранений прописывал...

Не сохраняются настройки
Здравствуйте, подскажите пожалуйсто: как сделать чтобы подключения библиотек не "сбрасывалось"... А то каждый раз когда захожу в...

9
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
29.03.2017, 19:54
Как Вы храните настройки ? Где находится ваша БД??? В ресурсах ???
0
44 / 44 / 24
Регистрация: 01.05.2012
Сообщений: 178
31.03.2017, 15:24
напишите класс для работы с INI-файлом. Тогда вы сможете туда и записывать данные и читать с него данные. Проще будет.

Например вот так класс для работы с INI-файлом может выглядеть:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Runtime.InteropServices;
using System.Text;
 
namespace Ini
{
    /// <summary>
    /// Create a New INI file to store or load data
    /// </summary>
    public class IniFile
    {
        public string path;
 
        [DllImport("kernel32.dll")]
        private static extern long WritePrivateProfileString(string section,
            string key, string val, string filePath);
        [DllImport("kernel32.dll")]
        private static extern int GetPrivateProfileString(string section,
                 string key, string def, StringBuilder retVal,
            int size, string filePath);
 
        /// <summary>
        /// INIFile Constructor.
        /// </summary>
        /// <PARAM name="INIPath"></PARAM>
        public IniFile(string INIPath)
        {
           // path = INIPath;
 
          //  path ;
        }
        /// <summary>
        /// Write Data to the INI File
        /// </summary>
        /// <PARAM name="Section"></PARAM>
        /// Section name
        /// <PARAM name="Key"></PARAM>
        /// Key Name
        /// <PARAM name="Value"></PARAM>
        /// Value Name
        public void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, this.path);
        }
 
        /// <summary>
        /// Read Data Value From the Ini File
        /// </summary>
        /// <PARAM name="Section"></PARAM>
        /// <PARAM name="Key"></PARAM>
        /// <PARAM name="Path"></PARAM>
        /// <returns></returns>
        public string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp,
                                            255, this.path);
            return temp.ToString();
 
        }
    }
}
0
 Аватар для Tsin
1180 / 488 / 188
Регистрация: 30.12.2012
Сообщений: 1,278
Записей в блоге: 2
31.03.2017, 15:43
Sigma214, чем же проще? Вот неуниверсальнее - да

Jesterru, допишите в методе закрытия формы в конце
C#
1
Properties.Settings.Default.Save();
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
31.03.2017, 18:26
Sigma214,объясните пожалуйста что сие означает [DllImport("kernel32.dll")] ??? Поподробнее об информации в квадратных скобках.

Добавлено через 2 минуты
Что это ???
C#
1
[STAThread]
Добавлено через 1 минуту
Почему используются именно квадратные скобки???
0
44 / 44 / 24
Регистрация: 01.05.2012
Сообщений: 178
31.03.2017, 18:53
Про DllImport можете почитать здесь (если буду пересказывать своими словами, то, возможно Вы меня не поймете) (Раздел 12.4 Системные функции): https://books.google.ru/books?... BE&f=false


Вот про STAThread: https://msdn.microsoft.com/ru-... 82351.aspx
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
31.03.2017, 19:08
Цитата Сообщение от Sigma214 Посмотреть сообщение
напишите класс для работы с INI-файлом. Тогда вы сможете туда и записывать данные и читать с него данные. Проще будет.

Не по теме:

Да вы извращенец... В ini хранить настройки в 2017 году...

0
44 / 44 / 24
Регистрация: 01.05.2012
Сообщений: 178
31.03.2017, 19:09
Someone007, эм... это оскорбление или комплимент?
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
31.03.2017, 19:34
Sigma214,что в данном случае означают квадратные скобки???
0
44 / 44 / 24
Регистрация: 01.05.2012
Сообщений: 178
31.03.2017, 19:40
Веселый, Это атрибут указывает исполняющей среде, что приложение использует однопоточную COM-модель.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2017, 19:40
Помогаю со студенческими работами здесь

Не сохраняются настройки плагина
Пишу плагин Paid Post. Сделал для него пробную страницу настроек (она пока там одна). Выводится страница нормально, но при нажатии...

Не сохраняются настройки Wi-Fi на ноутбуке
Здравствуйте. В один вечер ноутбук перестал подключаться автоматически к домашнему вай-фай: тоесть, пароль он помнит, а пишет что &quot;Нет...

Не сохраняются настройки сети
Здравствуйте уважаемые форумчане. Есть трабл. захожу я значит в настройки Центр управления сетями и общим доступом. нажимаю изменить...

Не сохраняются настройки в BIOS
Здравствуйте. Помогите, пожалуйста, разобраться, ибо не знаю в чем дело - не сохраняются настройки биоса при перезагрузке, при том, что...

Не сохраняются настройки в файл
Всем привет!) Есть такой код: final File cfg_file = new File(&quot;/storage/emulated/0/XPlayer/config.ini&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru