示例#1
0
        static void Main(string[] args)
        {
            Multiple row;      // ссылка на объект класса
            int      size = 0; // размер генеральной совокупности

            do
            {
                Console.Write("Введите размер генеральной совокупности: ");
            }while (!int.TryParse(Console.ReadLine(), out size) | size < 1); Random gen = new Random(5);
            int[] data = new int[size]; // генеральная совокупность
            for (int i = 0; i < size; i++)
            {
                data[i] = gen.Next(0, 100);
                Console.Write(data[i] + " ");
            }
            Console.WriteLine();
            XmlSerializer formBin = new XmlSerializer(typeof(Multiple));


            do
            { // цикл для создания и записи в файл объектов
                using (FileStream byteStream = new FileStream("xml", FileMode.Create, FileAccess.ReadWrite))
                {
                    int div;
                    do
                    {
                        // цикл проверки делителя!
                        do
                        {
                            Console.Write("Введите делитель: ");
                        }while (!int.TryParse(Console.ReadLine(), out div)); try
                        {
                            row = new Multiple(div, data);
                            break;
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Нужен делитель от 1 до 9!"); continue;
                        }
                    }while (true);
                    // создан объект row, запишем его код в файл:
                    formBin.Serialize(byteStream, row);
                    byteStream.Flush();
                    Console.WriteLine("\nДля чтения файла - клавиша ESC");
                }
            } while (Console.ReadKey(true).Key != ConsoleKey.Escape);

            using (FileStream byteStream = new FileStream("xml", FileMode.Open, FileAccess.Read))
            {
                byteStream.Position = 0;
                try
                {
                    row = (Multiple)formBin.Deserialize(byteStream);
                    Console.WriteLine(row.ToString());
                }
                catch (SerializationException)
                {
                }
            }
        }
        static void Main(string[] args)
        {
            Multiple row;
            int      size = 0;

            do
            {
                Console.Write("Введите размер генеральной совокупности: ");
            }while (!int.TryParse(Console.ReadLine(), out size) | size < 1);
            Random gen = new Random(5);

            int[] data = new int[size];
            for (int i = 0; i < size; i++)
            {
                data[i] = gen.Next(0, 100);
                Console.Write(data[i] + "  ");
            }
            Console.WriteLine();
            XmlSerializer serializer = new XmlSerializer(typeof(Multiple), new Type[] { typeof(int[]), typeof(int), typeof(string) });

            using (FileStream fs = new FileStream("data.xml",
                                                  FileMode.Create))
            {
                do
                {
                    int div;
                    do
                    {
                        do
                        {
                            Console.Write("Введите делитель: ");
                        }while (!int.TryParse(Console.ReadLine(), out div));
                        try
                        {
                            row = new Multiple(div, data);
                            break;
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("Нужен делитель от 1 до 9!");
                            continue;
                        }
                    }while (true);
                    serializer.Serialize(fs, row);
                    Console.WriteLine("\nДля чтения файла - клавиша ESC");
                } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
            }
            using (FileStream fs = new FileStream("data.xml",
                                                  FileMode.Open))
            {
                while (true)
                {
                    try
                    {
                        row = (Multiple)serializer.Deserialize(fs);
                        Console.WriteLine(row.ToString());
                    }
                    catch
                    {
                        break;
                    }
                }
            }
        }