Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/60: Рейтинг темы: голосов - 60, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
1

сохранение настроек в файл C#

02.12.2009, 20:43. Показов 12056. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!Я пытаюсь сделать так чтобы у меня программа сохраняла настройки в файл!Всмысле она запускаеться,проверяет есть ли файл сеттингс,если нет-создаёт,если есть-читает настройки и применяет)вот... но она у меня создаёт пустой файл... 4 часа бился так и не пошло!ПОмогите пожалуйсто)


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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Resources;
using System.Xml.Serialization;
 
 
//E-mail using
using System.Web;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
 
namespace Application
{
 
    //структура для хранения сохраняемой в файл инфы
    public class Settings
    {
        public static string smtpHost;
        public static int smtpPort;
        public static string smtpUser;
        public static string smtpPass;
        
        public string ssmtpHost
        {
           get { return smtpHost; }
           set { smtpHost = value ; }
        }
        public int ssmtpPort
        {
            get { return smtpPort; }
            set { smtpPort = value; }
        }
        public string ssmtpUser
        {
            get { return smtpUser; }
            set { smtpUser = value; }
       }
        public string ssmtpPass
       {
           get { return smtpPass; }
           set { smtpPass = value; }
       }
 
    }
 
   
 
  
    class Program
    {
        static void Main(string[] args)
        {
            
 
            if (File.Exists("settings.xml"))
            {
                
               
                
            }
            else
            {
 
               Console.WriteLine("хост:");
               string ismtpHost = Console.ReadLine();
               ismtpHost = Settings.smtpHost;
               Console.WriteLine("порт:");
               string issmtpPort = Console.ReadLine();
               int ismtpPort = Convert.ToInt32(issmtpPort);
               ismtpPort = Settings.smtpPort;  
               Console.WriteLine("юзер:");
               ismtpHost = Settings.smtpHost;
               string ismtpUser = Console.ReadLine();
               ismtpHost = Settings.smtpHost;
               Console.WriteLine("пасс:");
               string ismtpPass = Console.ReadLine();
               ismtpHost = Settings.smtpHost;
               
            Settings settings = new Settings();
            XmlSerializer ser = new XmlSerializer(typeof(Settings));
            TextWriter writer = new StreamWriter("settings.xml");
            ser.Serialize(writer, settings);
            writer.Close();
            }
           
               
 
            
             Settings nsettings = new Settings();
             XmlSerializer nser = new XmlSerializer(typeof(Settings));
             XmlSerializer deser = new XmlSerializer(typeof(Settings));
             TextReader reader = new StreamReader("settings.xml");
             nsettings = ((Settings)nser.Deserialize(reader));
             reader.Close();
            
           
           
            Console.Write(" Добро пожаловать в Serik EMAIL Spammer!");
            Console.Write("Пожалуйсто email: ");
            string mail = Console.ReadLine();
            Console.WriteLine("Введите текст");
            string tekst = Console.ReadLine();
            Console.Write("Количество сообщений: ");
            string count = Console.ReadLine();
            int countInt = Convert.ToInt32(count);
            //Авторизация на SMTP сервере
            SmtpClient Smtp = new SmtpClient(Settings.smtpHost, Settings.smtpPort);
            Smtp.Credentials = new NetworkCredential(Settings.smtpUser, Settings.smtpPass);
            //Smtp.EnableSsl = false;
 
            //Формирование письма
            MailMessage Message = new MailMessage();
            Message.From = new MailAddress("iam@mymail.hz");
            Message.To.Add(new MailAddress(mail));
            Message.Subject = "Сериковская Почтовая Атправка Месседжей"+count;
            Message.Body = tekst;
 
            for (int i = 0; i < countInt; i++)
            {
                Smtp.Send(Message);//отправка
            }
            Console.WriteLine(count + " сообщений отправлено!");
        }
    }
}
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2009, 20:43
Ответы с готовыми решениями:

Сохранение настроек - файл settings пустой
Хочу сохранить настройки. но ничего не сохраняется, файл Settings пустой. ...

[JSON] Правильное сохранение настроек в Json файл
Добрый день уважаемые участники. Есть вопрос. Решил я сохранять настройки проги в json файл....

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

Сохранение настроек в ini-файл
Пару дней обучаюсь Delphi , сегодня попробовал написать программу которая сохраняет настройки в...

12
4337 / 1506 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
02.12.2009, 22:01 2
Сохранение настроек программы последний пост
0
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
03.12.2009, 17:26  [ТС] 3
меня не интересует как это делают другие,я хочу понять где я в своём коде сделал ошибку... плагиатить легче всего...
0
zaxar
03.12.2009, 17:51 4
При сериализации статические поля не включаются. Также не включаются свойства, которые заточены на статику.
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
04.12.2009, 11:40  [ТС] 5
ну а как мне сделать так чтобы настройки читались из файла и сохранялись оттуда?
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
05.12.2009, 11:58 6

Не по теме:

Цитата Сообщение от darkahoy Посмотреть сообщение
меня не интересует как это делают другие,я хочу понять где я в своём коде сделал ошибку... плагиатить легче всего...
Цитата Сообщение от darkahoy Посмотреть сообщение
ну а как мне сделать так чтобы настройки читались из файла и сохранялись оттуда?
А если дать вам готовый ответ это будет для вас плагиатом или нет?


Сделать поля в классе Settings не статическими. Объявление переменной settings перенести вверх, до проверки файла. В зависимости от результата в if, эта переменная будет или десериализоваться, либо нужно создать ее экземпляр и заполнить все поля.
0
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
05.12.2009, 15:21  [ТС] 7
[QUOTE=Green;395852]

Не по теме:



А если дать вам готовый ответ это будет для вас плагиатом или нет?


плагиатом я считал засунуть кусок кода из уже существующей программы) а не помощь по моей)) ммм... огромное спасибо за ответ,буду щас пытаться)) и если не затруднит можешь показать твой код? как ты это делал?) хочу проанализировать)

Добавлено через 17 минут
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
68
69
70
71
72
73
74
75
76
    //структура для хранения сохраняемой в файл инфы
    public class Settings
    {
        public static string smtpHost;
        public static int smtpPort;
        public static string smtpUser;
        public static string smtpPass;
 
        //public string ssmtpHost
        //{
        //    get { return smtpHost; }
        //    set { smtpHost = value; }
        //}
        //public int ssmtpPort
        //{
        //    get { return smtpPort; }
        //    set { smtpPort = value; }
        //}
        //public string ssmtpUser
        //{
        //    get { return smtpUser; }
        //    set { smtpUser = value; }
        //}
        //public string ssmtpPass
        //{
        //    get { return smtpPass; }
        //    set { smtpPass = value; }
        //}
 
    }
 
 
 
 
    class Program
    {
        static void Main(string[] args)
        {
                Settings settings = new Settings();
 
 
            if (File.Exists("settings.xml"))
            {
            Settings nsettings = new Settings();
            XmlSerializer nser = new XmlSerializer(typeof(Settings));
            XmlSerializer deser = new XmlSerializer(typeof(Settings));
            TextReader reader = new StreamReader("settings.xml");
            nsettings = ((Settings)nser.Deserialize(reader));
            reader.Close();
 
            }
            else
            {
 
                Console.WriteLine("хост:");
                string ismtpHost = Console.ReadLine();
                ismtpHost = Settings.smtpHost;
                Console.WriteLine("порт:");
                string issmtpPort = Console.ReadLine();
                int ismtpPort = Convert.ToInt32(issmtpPort);
                ismtpPort = Settings.smtpPort;
                Console.WriteLine("юзер:");
                ismtpHost = Settings.smtpHost;
                string ismtpUser = Console.ReadLine();
                ismtpHost = Settings.smtpHost;
                Console.WriteLine("пасс:");
                string ismtpPass = Console.ReadLine();
                ismtpHost = Settings.smtpHost;
 
                XmlSerializer ser = new XmlSerializer(typeof(Settings));
                TextWriter writer = new StreamWriter("settings.xml");
                ser.Serialize(writer, settings);
                writer.Close();
 
 
            }
вот,изменил.Если убираю static то у меня выскакивают ошибки "Для нестатического поля, метода или свойства "Application.Settings.smtpXXXX требуеться ссылка на объект"
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
05.12.2009, 16:20 8
Написал на глаз, код не проверял. Возможно где-то ошибся..
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
68
69
70
71
72
73
74
75
    //структура для хранения сохраняемой в файл инфы
    public class Settings
    {
        private string smtpHost;
        private int smtpPort;
        private string smtpUser;
        private string smtpPass;
 
        public string ssmtpHost
        {
            get { return smtpHost; }
            set { smtpHost = value; }
        }
        public int ssmtpPort
        {
            get { return smtpPort; }
            set { smtpPort = value; }
        }
        public string ssmtpUser
        {
            get { return smtpUser; }
            set { smtpUser = value; }
        }
        public string ssmtpPass
        {
            get { return smtpPass; }
            set { smtpPass = value; }
        }
    }
 
 
 
 
    class Program
    {
        static void Main(string[] args)
        {
            Settings settings = null;
 
 
            if (File.Exists("settings.xml"))
            {
                XmlSerializer nser = new XmlSerializer(typeof(Settings));
                XmlSerializer deser = new XmlSerializer(typeof(Settings));
                TextReader reader = new StreamReader("settings.xml");
                settings = (Settings)nser.Deserialize(reader);
                reader.Close();
 
            }
            else
            {
                settings = new Settins();
 
                Console.WriteLine("хост:");
                string ismtpHost = Console.ReadLine();
                settings.smtpHost=ismtpHost;
 
                Console.WriteLine("порт:");
                string issmtpPort = Console.ReadLine();
                int ismtpPort = Convert.ToInt32(issmtpPort);
                settings.smtpPort=ismtpPort;
 
                Console.WriteLine("юзер:");
                string ismtpUser = Console.ReadLine();
                settings.ssmtpUser=ismtpUser;
 
                Console.WriteLine("пасс:");
                string ismtpPass = Console.ReadLine();
                settings.smtpHost =ismtpHost;
 
                XmlSerializer ser = new XmlSerializer(typeof(Settings));
                TextWriter writer = new StreamWriter("settings.xml");
                ser.Serialize(writer, settings);
                writer.Close();
            }
1
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
05.12.2009, 19:42  [ТС] 9
http://itrash.ru/idb/10e96600c... shibki.jpg вот собственно то что мне показывает.) твой код вроде без ошибок)
только
C#
1
2
3
4
5
6
7
8
 Console.WriteLine("хост:");
                string ismtpHost = Console.ReadLine();
               [U] Settings.smtpHost[/U] = ismtpHost;
 
                Console.WriteLine("порт:");
                string issmtpPort = Console.ReadLine();
                int ismtpPort = Convert.ToInt32(issmtpPort);
                [U]Settings.smtpPort[/U] = ismtpPort;
ошибки с безопастностью подчёркивает выбеленное
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
05.12.2009, 20:09 10
Не Settings, а settings. Работаем не с классом, а с экземпляром класса.
0
1 / 1 / 0
Регистрация: 02.12.2009
Сообщений: 6
05.12.2009, 22:36  [ТС] 11
ээ)да,пасип,половина ошибок со скриншота исчезло)а вот с защитой не исчезли,(((
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
            else
            {
                settings = new Settings();
 
                Console.WriteLine("хост:");
                string ismtpHost = Console.ReadLine();
                settings.smtpHost = ismtpHost;
 
                Console.WriteLine("порт:");
                string issmtpPort = Console.ReadLine();
                int ismtpPort = Convert.ToInt32(issmtpPort);
                settings.smtpPort = ismtpPort;
 
                Console.WriteLine("юзер:");
                string ismtpUser = Console.ReadLine();
                settings.ssmtpUser = ismtpUser;
 
                Console.WriteLine("пасс:");
                string ismtpPass = Console.ReadLine();
                ismtpHost = settings.smtpHost;
вот каждая переменная подчёркнута((
0
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
07.12.2009, 15:35 12
Вот еще ссылка: настраиваемое приложение.. вдруг еще варианты понадобятся.

Я раньше пытался делать через Settings, но что-то не сраслось
1
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
07.12.2009, 17:01 13
Цитата Сообщение от darkahoy Посмотреть сообщение
вот каждая переменная подчёркнута((
Проглядел. Нужно указывать на свойства, а не на поля. Т.е. значения с доп. символом s (Например, ssmtpHost, а не smtpHost)
1
07.12.2009, 17:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2009, 17:01
Помогаю со студенческими работами здесь

Сохранение настроек в зкрытый файл
Добрго всем времени суток! Я просмотрел все темы и с грустью константировал факт отсутствия...

Сохранение настроек программы в *ini файл.
Как сохранить параметры программы в файл *ini ?

Сохранение настроек
Добрый день! Подскажите как можно сохранить настройки окна, меню и т.д. и, что бы при запуске...

Сохранение настроек ПО
Привет. Вот такой вопрос. Все настройки ПО я сохраняю с помощью Properties.Settings.Default.Save()....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru