Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2012, 19:30   #1
wroud
Новичок
Джуниор
 
Регистрация: 25.01.2012
Сообщений: 2
Восклицание Ошибка в коде чтения данных из файла

Нашел в интернете код чтения данных из файла 1 раз удалось его использовать после чего решил перенести его в более удобный класс после переноса код перестал работать.
Код:
class SETTINGS
    {
        public static void LoadSettings()
        {
            StreamReader strR = new StreamReader("settings.txt"); //Открываем файл на чтение
            String line;
            while (!strR.EndOfStream) //Читаем построчно
            {
                line = strR.ReadLine();
                Regex reg = new Regex("(.+?)( )*=( )*(.+?)( )*;"); //Для каждой строки применяем регулярное выражение
                if (reg.IsMatch(line))
                {
                    Match m = reg.Match(line);
                    String fieldName = m.Groups[1].Value; //Имя поля
                    String fieldValue = m.Groups[4].Value; //Его значение
                    typeof(SETTINGS).GetField
                        (fieldName.ToLower(),
                            System.Reflection.BindingFlags.Static |
                           System.Reflection.BindingFlags.NonPublic).SetValue(null, fieldValue); //Устанавливаем значение этого поля для null объекта (поля-то static!)
 
                }
            }
            strR.Close();
        }
        public static void VerifySettings()
        {
            FieldInfo[] fields = typeof(SETTINGS).GetFields
                                 (System.Reflection.BindingFlags.Static |
                                 System.Reflection.BindingFlags.NonPublic); //Получаем список всех статических непубличных полей
            foreach (FieldInfo field in fields)
                if (field.GetValue(null) == null) throw new Exception("Поле " + field.Name + " отсутсвует в файле настроек!"); //Если у поля нет значения, возвращаем Exception
        
            Console.WriteLine("Ignoring API version checks on plguins.");
        }
 
        private static String password;
        public static String Password
        { get { return password; } }
    }
в строчке private static String password; слово password подчёркивается зелёной линией "Полю password негде не присваивается значение поэтому оно всегда будет null"
в чём ошибка?
wroud вне форума Ответить с цитированием
Старый 25.01.2012, 19:51   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Ну правильно пишет, ведь setter'a нету у свойства Password. Как же оно устанавливается?
Hollander вне форума Ответить с цитированием
Старый 25.01.2012, 20:12   #3
wroud
Новичок
Джуниор
 
Регистрация: 25.01.2012
Сообщений: 2
По умолчанию

Код:
typeof(SETTINGS).GetField
                        (fieldName.ToLower(),
                            System.Reflection.BindingFlags.Static |
                           System.Reflection.BindingFlags.NonPublic).SetValue(null, fieldValue);
ключевая часть кода производит поиск и подстановку значений
wroud вне форума Ответить с цитированием
Старый 25.01.2012, 20:16   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Понятно, просто нету явной установки поля, поэтому и пишет.
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка чтения файла Umnik1 Общие вопросы Delphi 12 25.06.2013 22:57
ошибка чтения из файла Fariori Visual C++ 3 01.11.2011 09:31
Ошибка чтения сохранённого файла(картинки) alex77755 Microsoft Office Excel 10 28.10.2010 14:46
Ошибка в коде чтения rezak91 Помощь студентам 6 25.05.2010 21:03
Ошибка: Попытка чтения за концом файла PlayHard Помощь студентам 11 10.05.2010 22:51