Exemplo n.º 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();

            using (FileStream stream = new FileStream("data.xml", FileMode.Create, FileAccess.ReadWrite))
            {
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(Multiple));
                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);

                    xmlSerializer.Serialize(stream, row);
                    stream.Flush();

                    Console.WriteLine("\nДля чтения файла - клавиша ESC");
                } while (Console.ReadKey(true).Key != ConsoleKey.Escape);

                stream.Position = 0;
                row             = (Multiple)xmlSerializer.Deserialize(stream);
                Console.WriteLine(row.ToString());
            }
        }
        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[]));

            using (FileStream byteStream = new FileStream("bytes.xml", FileMode.Create, FileAccess.ReadWrite))
            {
                List <Multiple> list = new List <Multiple>();
                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;
                        }
                        list.Add(row);
                    }while (true);

                    Console.WriteLine("\nДля чтения файла - клавиша ESC");
                } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
                formBin.Serialize(byteStream, list.ToArray());
                byteStream.Flush();
                byteStream.Position = 0;
                list = new List <Multiple>((Multiple[])formBin.Deserialize(byteStream));
                Console.WriteLine(row.ToString());
            }
        }
Exemplo n.º 3
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();
            BinaryFormatter formBin = new BinaryFormatter();

            using (FileStream byteStream = new FileStream("bytes",
                                                          FileMode.Create, FileAccess.ReadWrite))
            {
                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);
                    // создан объект row, запишем его код в файл:
                    formBin.Serialize(byteStream, row);
                    byteStream.Flush();
                    Console.WriteLine("\nДля чтения файла - клавиша ESC");
                } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
                byteStream.Position = 0;
                while (true) // читать до конца файла
                {
                    try
                    {
                        row = (Multiple)formBin.Deserialize(byteStream);
                        Console.WriteLine(row.ToString());
                    }
                    catch (SerializationException)
                    { //
                        break;
                    }
                }
            }
            Console.ReadKey();
        }