Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
.NET 2.x

Параметры программы

06.10.2011, 14:20. Показов 1034. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Помогите пожалуйста, как сохранить параметры программы в .тхт файл, а потом загрузить из него. Например в текстовом файле написано
Code
1
2
3
4
[Параметры]
[Размеры окон]
Высота = 130 //Высота программы
Ширина = 100 //Ширина программы
Мне нужно, чтобы программа запустился с заданными параметрами. И еще я хотел бы к текстовому файлу писать комменты. Как это реализовать?
Заранее всем благодарен!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2011, 14:20
Ответы с готовыми решениями:

Параметры программы - перенос на другой ПК без дополнительных файлов
Сделал простенькую программу, и в ней задал настройки, в свойствах проекта, короче обращение к настройкам происходит таким образом: var...

Как в CRL среде при запуске консольной программы на отладку передать ей параметры
Простите за вроде тривиальный вопрос, но никак не найду ответ. Раньше писал консольные программы, но не разу не передавал параметры. Если...

Параметры у программы C++
Есть такой вопрос, у некоторых программ можно добавлять специальные параметры к примеру скажем - ""C:\...\skype.exe"...

6
168 / 140 / 23
Регистрация: 02.01.2011
Сообщений: 913
06.10.2011, 16:42
Почитайте про конфигурационные файлы
http://www.coding4.net/post/cr... -file.aspx
1
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
06.10.2011, 17:02
перед закрытием программы сохраняешь требуемые параметры в текстовый файл
при открытии это файл считываешь и устанавливаешь соответствующие параметры

данные в твоём файле могут содержаться в каком угодно виде - извлекать соответствующие значения из "какого угодно вида" тебе, так что тут можешь хоть буквами цифры писать. главное потом правильно распарсить!
1
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
06.10.2011, 17:31  [ТС]
Добавлено через 13 минут
M__A__K, Можно какой нибудь пример

я сам делал так
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
param Setting = new param();
        string put = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "\\de.txt";
        
        public class param
        {
            List<string> list = new List<string>();//Список
            string h;
            public void par(string path)
            {
                string b, c = null;
                string[] de = File.ReadAllLines(path, Encoding.Default);
                foreach (string k in de)//Убираем комменты из текстогого файла и имена.
                {
                    b = Regex.Replace(k.ToString(), @"\[.*?\]", "");
                    if (b.IndexOf("//") != -1)
                        c = b.Remove(k.IndexOf("//"));
                    else
                        c = b;
                    list.Add(c.Trim());//добавляем в список без пробелов
                }
            }
 
            public string param1(String Parameter)
            {
                foreach (string k in list)
                {
                    if (k.IndexOf(Parameter) != -1)
                    {
                        if (k.IndexOf("=") != -1)
                        {
                            h = k.Substring(k.IndexOf("=")+1).Trim();
                        }
                    }
                }
                return h;//Взвращаем параметр
            }
        }
 
        void p()
        {
            string a = null, b = null, c = null;
            string[] de = File.ReadAllLines(put, Encoding.Default);
            foreach (string k in de)//Добавляемв КомбоБокс только имена параметров
            {
                a = (Regex.Replace(k.ToString(), @"\[.*?\]", ""));
 
                if (a.IndexOf("//") != -1)
                    c = a.Remove(a.IndexOf("//"));
                else
                    c = a;
 
                if (c.IndexOf("=") != -1)
                    b = c.Remove(c.IndexOf("="));
                else
                    b = c;
 
                if (b.Contains(" "))
                    comboBox1.Items.Add(b.Trim());
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            
            Setting.par(put);
            //Setting.param1("Ширина");
            
            
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Setting.par(put);
            textBox1.Text = Setting.param1(comboBox1.Text);//получаем параметры из текстогого файла
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            p(); //загружаем из текстогого файла имена параметров
        }
программа все делает, так как я хотел. Может можно как нибудь уменьшить данный код.
0
47 / 47 / 6
Регистрация: 09.11.2010
Сообщений: 308
06.10.2011, 17:47
определяем в программе структуру:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
[Serializable]
struct Option
{
    public Size curentSize;
    public Option( Option opt )
    {
        this.curentSize = opt.curentSize;
    }
    public Option( Size curentSize )
    {
        this.curentSize = curentSize;
    }
}
при запуске программы считываем эти параметры (у меня программа представляет собой приложение Windows Forms, поэтому у меня считывание происходит в методе InitializeComponent):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FileStream savedFile = null;
try
{
    BinaryFormatter bf = new BinaryFormatter();
    savedFile = new FileStream( "1.txt", FileMode.Open, FileAccess.Read, FileShare.None ); //1.txt - файл с настройками
    Option savedOption = new Option( (Option) bf.Deserialize( savedFile ) );
    this.sizeNow = savedOption.curentSize; //this.sizeNow - глобальная переменная объявленная ранее
}
catch ( FileNotFoundException )
{
    this.sizeNow = new Size( 500, 500 ); //500х500 - значение по умолчанию
}
catch ( Exception ex )
{
    MessageBox.Show( ex.ToString(), "Ошибка", MessageBoxButtons.OK );
}
finally
{
    if ( savedFile != null )
       savedFile.Close();
}
далее применяем полученные настройки:
C#
1
this.ClientSize = this.sizeNow;
перед закрытием приложения сохраняем текущие настройки (у меня данный код находится в обработчике события FormClosing):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
FileStream savedFile = null;
BinaryFormatter bf = new BinaryFormatter();
Option curentOption = new Option( this.sizeNow );
try
{
    savedFile = new FileStream( "1.txt", FileMode.Create, FileAccess.Write, FileShare.None );
    bf.Serialize( savedFile, curentOption );
}
catch ( Exception ex )
{
    MessageBox.Show( ex.ToString(), "Ошибка", MessageBoxButtons.OK );
}
finally
{
    if ( savedFile != null )
       savedFile.Close();
}
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.10.2011, 22:34
Майкрософт не рекомендует использовать файлы .ini для хранения настроек в приложениях .NET. Советуют пользоваться xml-настройками или реестром.
Ежели сильно приспичило пользоваться именно .ini файлами с поддержкой категорий и коментов, то готовый функционал имеется в методах WritePrivateProfileString и GetPrivateProfileString библиотеки kernel32.dll
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
07.10.2011, 19:20  [ТС]
А как еще можно сделать, чтобы после выбора в программе в комбобоксе "NotePad", то программа в ТекстБоксе должен показать компанию который создал эту программу(например МАЙКРОСОФТ).
А как база используется тхт файл
Code
1
2
3
[Список]
NotePad = МАЙКРОСОФТ
Windows = МАЙКРОСОФТ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2011, 19:20
Помогаю со студенческими работами здесь

Получить параметры запуска программы
как получить параметры запуска программы, есть ли для этого функция?

Обработать параметры запуска программы
Всем доброго дня, прошу помочь в выполнении такой задачи Написать программу, которая обеспечивает работу команды вида: , где -a...

Параметры командной строки и каталог программы
Здравсвуйте! Как можно получить параметры командной строки при старте проги, и как определить каталог, в котором находится прога???

Параметры программы для отправки почты
Пока интересует автоматическая отправка писем при восстановлении пароля компонентом PasswordRecovery. В BodyFileName прописал путь до...

Как передавать параметры с одной программы в другую?
Как передавать параметры от одной моей программы к другой?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru