Местоположение
Россия

Наибольший вклад в теги

Все теги (5)

Лучшие ответы пользователя

Все ответы (15)
  • Как лучше передавать данные между тестом и конструктором тестов?

    @SlNik
    Как вариант можешь использовать XML сериализацию:
    На "Конструкторе тестов":
    1 - Создаешь класс(ы) в котором(ых) описываешь все поля что хочешь сохранять. Сам класс и поля должны быть public.
    2 - Класс помечаешь атрибутом [Serializable]
    3 - Создаешь экземпляр класса, заполняешь его
    4 - Делаешь сериализацию

    На приложении "Тест"
    1 - Копируешь созданный класс(ы) для "Конструкторе тестов" в этот проект
    2 - Создаешь экземпляр этого класса и делаешь дисериализацию данных.

    Пример:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace Лямбда_Выражения
    {
        class Program
        {
            static void Main(string[] args)
            {
                Data data = new Data();
                Test test = new Test();
                Question question = new Question();
                Answer answer = new Answer();
                Answer answer2 = new Answer();
    
                question.ТекстВопроса = "Сколько будет 2+2 ?";
                answer.ТекстОтвета = "5";
                answer.ОтветВерный = false;
                answer2.ТекстОтвета = "4";
                answer2.ОтветВерный = true;
                question.Ответы.Add(answer);
                question.Ответы.Add(answer2);
    
                test.Вопросы.Add(question);
                test.ДатаВремяСоздания = DateTime.Now;
                test.Название = "Тест на знание математики";
                test.Создатель = "SlNik";
    
                data.Тесты.Add(test);
                data.Сохранить();
                Console.ReadKey();
            }
        }
    
        [Serializable]
        public class Answer
        {
           public string ТекстОтвета { get; set; }
           public bool ОтветВерный { get; set; }
        }
    
        [Serializable]
        public class Question
        {
            public Question()
            {
                Ответы = new List<Answer>();
            }
            public string ТекстВопроса { get; set; }
            public List<Answer> Ответы { get; set; }
        }
    
        [Serializable]
        public class Test
        {
            public Test()
            {
                Вопросы = new List<Question>();
            }
            public string Название { get; set; }
            public string Создатель { get; set; }
            public DateTime ДатаВремяСоздания { get; set; }
            public List<Question> Вопросы { get; set; }
        }
    
        [Serializable]
        public class Data
        {
            public List<Test> Тесты;
            public string Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
            public Data()
            {
                Тесты = new List<Test>();
            }
            public Data(string patch = null)
            {
                Patch = patch;
                if (Patch == null)
                    Patch = Path.Combine(Environment.CurrentDirectory, "Data.xml");
    
                if (File.Exists(Patch))
                    Загрузить(Patch);
            }
            public void Загрузить(string patch)
            {
                XmlSerializer formatter = new XmlSerializer(typeof(Data));
                using (FileStream fs = new FileStream(patch, FileMode.OpenOrCreate))
                {
                    Data data = (Data)formatter.Deserialize(fs);
    
                    Console.WriteLine("Данные с тестами загружены");
                    Console.WriteLine("Кол-во тестов:{0}", data.Тесты.Count);
                }
            }
            public void Сохранить(string patch = null)
            {
                if (patch == null)
                    patch = Patch;
                XmlSerializer formatter = new XmlSerializer(typeof(Data));
                using (FileStream fs = new FileStream(patch, FileMode.Create))
                {
                    formatter.Serialize(fs, this);
                    Console.WriteLine("Объект сериализован");
                }
            }
    
    
        }
    }


    Если в приложение "Тест" будут работать большое кол-во пользователей с разных ПК используй базу данных.
    Ответ написан
    1 комментарий
  • Как узнать чем сделан инсталлятор программы?

    @SlNik
    В некоторых случаях возможно определить по надписям и картинкам, по свойствам файла, но вот особенности о которых знаю:
    1 - Inno Setup - будет доступно меню ALT + SPACE там можешь почитать
    2 - NSIS - обычно выделяется своим внешним видом если разработчик не заморачивался

    Как вариант можешь методом перебора ключей тихой установки попытаться выяснить:
    Читаешь какие ключи для тихой установки использует NSIS и пробуешь произвести тихую устаноку, если не получилось читаешь про ключи Inno Setup и тд. Но есть одно но - тихая установка может быть не реализована в твоём установочном файле.

    Владимир Коротенко подметил верно в метаданных бывает информация которая тебе может помочь:
    5e7ad255ce0d5963190664.png
    Ответ написан
    Комментировать
  • Где лучше хранить файлы сериализации?

    @SlNik
    Желательно сохранять в папку где обычно не требуются права администратора, допустим в мои документы:
    Environment.SpecialFolder.Personal
    Ответ написан
    2 комментария
  • Никак не получается удалить второго админа в системе Windows 7, которого сам и создал, как мне быть именно в моём случае?

    @SlNik
    Возможно проблема в том, что остаются ключи этого пользователя в реестре. Сделай всё так же как ты и делал + удали раздел из реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList -> Максим

    5e7ad7d3781a1835343182.png

    Если не поможет, как вариант можешь посмотреть в сторону восстановление системы.
    Ответ написан
    Комментировать