public void DeserializeXML(FileStream fs)
        {
            XmlSerializer bf           = new XmlSerializer(typeof(FullNameClass));
            FullNameClass deserialized = (FullNameClass)bf.Deserialize(fs);

            Name    = deserialized.Name;
            Surname = deserialized.Surname;
            Age     = deserialized.Age;
            fs.Close();
        }
        public void DeserializeBin(FileStream fs)
        {
            BinaryFormatter bf           = new BinaryFormatter();
            FullNameClass   deserialized = (FullNameClass)bf.Deserialize(fs);

            Name    = deserialized.Name;
            Surname = deserialized.Surname;
            Age     = deserialized.Age;
            fs.Close();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            /*FileStream fs = new FileStream("D:\\FullNameSerialize.xml", FileMode.OpenOrCreate, FileAccess.Write);
             * FullNameClass fnc = new FullNameClass("Ivan", "Ivanov", "Ivanovich");
             * fnc.Print();
             * fnc.Serialize(fs);
             * fnc = new FullNameClass("Petr", "Petrov", "Petrovich");
             * fnc.Print();
             * fs = new FileStream("D:\\FullNameSerialize.xml", FileMode.OpenOrCreate, FileAccess.Read);
             * fnc.Deserialize(fs);
             * fnc.Print();
             * string path = @"D:\laba28.03";
             * search kw = new search("day", path);
             * kw.result();
             */

            string choice;//переменная ввода
            string path;
            string keyword;

            while (true)                                          //менюшка, ее логика
            {
                Console.WriteLine("\n=======================\n"); //выводы
                Console.Write("Меню: \n" +
                              "1) Сериализовать бинарно\n" +
                              "2) Десериализовать бинарно\n" +
                              "3) Сериализовать в XML\n" +
                              "4) Десериализовать XML\n" +
                              "5) Поиск по ключевым словам\n" +
                              "6) Прочесть файл\n" +
                              "7) Записать в файл\n" +
                              "f - ВЫХОД ИЗ ПРОГРАММЫ \n " +
                              "Ввод: ");
                choice = Console.ReadLine();
                Console.Clear();

                //проверка на выход
                if (choice == "f")
                {
                    Console.WriteLine("\n\n\n\nВЫХОД\n\n\n\n");
                    break;
                }
                switch (choice)//действия по нажатию
                {
                case "1":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    FileStream    bin  = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
                    FullNameClass fnc2 = new FullNameClass("Grigory", "Grigoriev", 18);
                    fnc2.Print();
                    fnc2.SerializeBin(bin);
                    Console.WriteLine("Сериализовано!");
                    break;

                case "2":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    bin  = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
                    FullNameClass fnc3 = new FullNameClass();
                    fnc3.DeserializeBin(bin);
                    fnc3.Print();
                    Console.WriteLine("Десериализовано!");
                    break;

                case "3":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    FileStream    fs  = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
                    FullNameClass fnc = new FullNameClass("Ivan", "Ivanov", 20);
                    fnc.Print();
                    fnc.SerializeXML(fs);
                    Console.WriteLine("Сериализовано!");
                    break;

                case "4":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    fs   = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
                    FullNameClass fnc1 = new FullNameClass();
                    fnc1.DeserializeXML(fs);
                    fnc1.Print();
                    Console.WriteLine("Десериализовано!");
                    break;

                case "5":
                    Console.WriteLine("Введите директорию: ");
                    path = Console.ReadLine();
                    Console.WriteLine("Введите Ключевое слово: ");
                    keyword = Console.ReadLine();
                    Console.WriteLine("Файлы содержащие ключевое слово: ");
                    search kw = new search(keyword, path);
                    kw.result();
                    break;

                case "6":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    using (FileStream fstream = File.OpenRead(path))
                    {
                        // преобразуем строку в байты
                        byte[] array = new byte[fstream.Length];
                        // считываем данные
                        fstream.Read(array, 0, array.Length);
                        // декодируем байты в строку
                        string textFromFile = System.Text.Encoding.Default.GetString(array);
                        Console.WriteLine($"Текст из файла:\n{textFromFile}");
                    }
                    break;

                case "7":
                    Console.WriteLine("Введите путь к файлу: ");
                    path = Console.ReadLine();
                    using (FileStream fstream = File.OpenRead(path))
                    {
                        // преобразуем строку в байты
                        byte[] array = new byte[fstream.Length];
                        // считываем данные
                        fstream.Read(array, 0, array.Length);
                        // декодируем байты в строку
                        string textFromFile = System.Text.Encoding.Default.GetString(array);
                        Console.WriteLine($"Текст из файла:\n{textFromFile}");
                    }
                    Console.WriteLine("Введите что хотите дописать: ");
                    string text = Console.ReadLine();

                    // запись в файл
                    using (FileStream fstream = new FileStream(path, FileMode.OpenOrCreate))
                    {
                        fstream.Seek(0, SeekOrigin.End);
                        byte[] array = System.Text.Encoding.Default.GetBytes(text);
                        fstream.Write(array);
                        Console.WriteLine("Текст записан в файл");
                    }
                    using (FileStream fstream = File.OpenRead(path))
                    {
                        // преобразуем строку в байты
                        byte[] array = new byte[fstream.Length];
                        // считываем данные
                        fstream.Read(array, 0, array.Length);
                        // декодируем байты в строку
                        string textFromFile = System.Text.Encoding.Default.GetString(array);
                        Console.WriteLine($"Новый текст:\n{textFromFile}");
                    }
                    break;

                case "8":
                    string keyword123  = "day";
                    string keyword1234 = "summer";
                    path = @"D:\123";
                    indexes indx = new indexes();
                    indx[0] = new search(keyword123, path);
                    indx[1] = new search(keyword1234, path);

                    search day = indx[0];
                    Console.WriteLine(day.word);

                    Console.ReadKey();
                    break;

                default:
                    Console.WriteLine("Введено некорректное значение");
                    break;
                }
            }
        }