Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using LibraryPrintEdition;
- using System.Windows.Forms;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.IO;
- using System.Xml.Serialization;
- using System.Text.Json;
- using System.Threading;
- namespace laba_1__4sem_
- {
- public partial class Form1 : Form
- {
- List<PrintEdition> list = new List<PrintEdition>();
- List<PrintEdition> list2 = new List<PrintEdition>() { new Journal("dfdf", 2, 14, 2, 5), new Book() };
- public Form1()
- {
- InitializeComponent();
- list.Add(new Journal("Колобок", 15, 100, 25, 5));
- list.Add(new Book("Алиса в стране чудес", 15, 1000, 345, true));
- list.Add(new CopyBook("Учим Английский", 5, 100, 200, 5));
- foreach (PrintEdition pe in list)
- {
- listBox1.Items.Add(pe);
- }
- }
- private void textBox1_TextChanged(object sender, EventArgs e)
- {
- }
- private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
- {
- }
- private void SerializeButton_Click(object sender, EventArgs e)
- {
- string fileName = filenameTextBox.Text;
- if(comboBox1.Text == "Двоичная сериализация")//Двоичная сериализация
- {
- fileName += ".dat";
- BinaryFormatter binFormat = new BinaryFormatter();
- using(Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
- {
- binFormat.Serialize(fStream, list);
- }
- }
- else if(comboBox1.Text == "XML")//XML
- {
- fileName += ".xml";
- using(var sw = new StreamWriter(fileName))
- {
- XmlSerializer xmlFormat = new XmlSerializer(typeof(List<PrintEdition>));
- xmlFormat.Serialize(sw, list2);
- }
- //using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
- //{
- // XmlSerializer xmlFormat = new XmlSerializer(typeof(List<PrintEdition>));
- // xmlFormat.Serialize(fStream, list2);
- //}
- //XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<PrintEdition>));
- //using (FileStream fs = new FileStream("serializexml.xml", FileMode.OpenOrCreate))
- //{
- // xmlSerializer.Serialize(fs, list2);
- //}
- }
- else if(comboBox1.Text == "JSON")//JSON
- {
- //fileName += ".json";
- //using (StreamWriter fs = new StreamWriter(fileName))
- //{
- // JsonSerializer jsonSerializer = new JsonSerializer();
- // jsonSerializer.Serialize(fs, list2);
- // Console.WriteLine("Data has been saved to file");
- //}
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- OpenFileDialog ofd = new OpenFileDialog();
- ofd.ShowDialog();
- List<PrintEdition> newList = new List<PrintEdition>();
- if(ofd.FileName.Contains(".dat"))//Двоичная десериализация
- {
- BinaryFormatter binFormat = new BinaryFormatter();
- // Read the list from the binary file.
- using (Stream fStream = File.OpenRead(ofd.FileName))
- {
- newList = (List<PrintEdition>)binFormat.Deserialize(fStream);
- foreach(var item in newList)
- {
- listBox2.Items.Add(item);
- Thread.Sleep(1000);
- }
- }
- }
- else if(ofd.FileName.Contains(".xml"))//XML десериализация
- {
- XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<PrintEdition>));
- using (Stream fStream = File.OpenRead(ofd.FileName))
- {
- list2 = xmlSerializer.Deserialize(fStream) as List<PrintEdition>;
- }
- listBox2.Items.Clear();
- foreach (var item in list2)
- {
- listBox2.Items.Add(item);
- }
- Invalidate();
- }
- else if(ofd.FileName.Contains(".json"))//JSON десериализация
- {
- using (StreamReader sr = new StreamReader(ofd.FileName))
- {
- var json = sr.ReadToEnd();
- string jsonString = File.ReadAllText(ofd.FileName);
- list2 = JsonSerializer.Deserialize<List<PrintEdition>>(json);
- }
- listBox2.Items.Clear();
- foreach (var item in list2)
- {
- listBox2.Items.Add(item);
- }
- Invalidate();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement