Как в цикле на каждом шаге изменять имя значения в setings.setings ?
Вот есть код:
private void Form1_Load(object sender, EventArgs e) { for (int i = 1; i <= 3; i++) { string a; a = (Properties.Settings.Default.s1); label1.Text = a; } } Мне нужно чтобы на каждом шаге в строчке "a = (Properties.Settings.Default.s1);" s1 увиличевалось на 1. Тоесть не 2 шаге а должно быть присвоено Properties.Settings.Default.s2. Делал "a = ("Properties.Settings.Default.s"+i);" но потом "а" присваивается путь "Properties.Settings.Default.s2", а не само знечение этого параметра. |
Подсказка:
//Перебор всех свойств. Код:
foreach(object obj in Properties.Settings.Default) //цикл для всех свойств |
Delirium, спасибо, сейчас попробую и отпишусь)
Цитата:
Ошибка 1 Оператор foreach не работает с переменными типа "WindowsFormsApplication1.Properties.Settings", поскольку "WindowsFormsApplication1.Properties.Settings" не содержит открытого определения для "GetEnumerator" C:\Documents and Settings\Администратор\мои документы\visual studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 26 25 WindowsFormsApplication1 |
Хм... странно, я думал, у него есть интерфейс IEnumerator...
В понедельник потестирую на работе, попробуем что нибудь придумать. |
Delirium, ок.
|
Код:
foreach (System.Configuration.SettingsProperty obj in Properties.Settings.Default.Properties) //цикл для всех свойств Код:
s3=a3 |
Delirium, огромное спасибо!
Сделал вот так: Код:
for (int i=0;i<=16;i++) |
Sadhacker, оформляй код тегами CODE, а то читать тяжело. Всегда рады помочь.
|
Delirium, появилась проблема: когда изменяю значение параметра в файле config, оно не обновляется в программе. А именно в obj.DefaultValue. У меня все настройки редактируются вручную в файле настроек. Как сделать так что-бы значение обновлялось?
|
Цитата:
Код:
Properties.Settings.Default.s1 = "новое значение"; |
Delirium, Вы не поняли. Из программы настройки изменять не нужно. Нужно, чтобы когда я изменяю значение в файле config через блокнот то оно подтягивалось в программу. А при использовании такого цикла как вы посоветовали значение остается таким же как было при компиляции программы. Это как-то можно решить, или все таки проще будет 16 раз скопировать кусок кода?
|
Цитата:
Для считывания таких параметров лучше завести отдельный какой нибудь INI файл, и в нем писать параметры и значения, и считывать их. |
Delirium, вот в том и проблема что не обновляется даже после перезагрузки. Попробуйте запустить откомпелированным последний код что я збрасывал и понаблюдать что obj.DefaultValue остается старым.
|
Sadhacker, виноват, забыл кое о чем. Файл config лежит вот по этому пути C:\Users\USER\AppData\Local\Имя_Программы.
|
Delirium, я в настройках указал тип-приложение. Так что настройки лежат в папке с программой.
|
Цитата:
|
Вложений: 1
Delirium, вот.
|
OK, сегодня постараюсь посмотреть.
Сразу вопрос - зачем ставить .Net Framework 4 client profile? Для простых приложений 2 фреймворка за глаза. Рекомендую не напрягать системы большим фреймворком для выполнения простых задач. По поводу сохранения - действительно странно, у меня раньше работало. Буду смотреть. http://www.vr-online.ru/content/c-so...lozhenija-2146 - здесь тоже говорится, что надо делать как обычно. |
Delirium, да я новичок. В версиях фреймворка не разбераюсь, вот и поставил самый последний, думал - самый лучший.
|
Цитата:
|
Delirium, этот проэкт я скинул для примера. А нужно мне делать так для загрузки новых баз по корпоративной сети на отделения где 2-4 компьтера. Архив загружается с ftp по adsl а потом розбрасывается на эти компьтера. Вот s1,s2 и т.д. это сетевой путь куда нужно збрасывать базы. Если значение стоит 0 то оно не используется. Тоесть мне поочереди нужно проверять значения от s1 до s16 и если там не 0 то копировать базы на этот адрес. Счас я просто скопировал 16 раз вот это:
Код:
string a = Properties.Settings.Default.s1; |
Delirium, кстати, у меня в visual studio 2010 professional доступно только framework 4.0 . Как туда можно 2.0 запихнуть? Я думал что просто нужно на пк установить фреймворк, но он так не появляется.
|
Delirium, о с фреймворком 2.0 разобрался, там просто нужно было поставить 3.5 sp1.
|
Ну в общем то я так и думал, что это будут пути. В данном случае проще всего работать с текстовиком и считывать его построчно.
Пример текстовика: Код:
s1=d:\ Плюсы подхода - гибкость использования и редактирование текстовика чем угодно. Минусы - написание парсера для обработки текстовика. Но он будет максимум в 20 строчек. Если у самого не получится, скажи, я напишу. |
Delirium, ок, я попробую.
|
Время: 06:43. |
Время: 06:43.
© OSzone.net 2001-