private void buttonDeserialize_Click(object sender, EventArgs e) { Issues.Clear(); string fileName = string.Empty; if (cbSerialize.SelectedIndex == 0) { if (cbPlugin.SelectedIndex == -1) { fileName = "Issues.dat"; } else { fileName = toDecode("Issues.dat"); } if (fileName != null) { BinaryFormatter formatter = new BinaryFormatter(); using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate)) { Issues = (List <Issue>)formatter.Deserialize(fs); } } } else if (cbSerialize.SelectedIndex == 1) { if (cbPlugin.SelectedIndex == -1) { fileName = "Issues.xml"; } else { fileName = toDecode("Issues.xml"); } if (fileName != null) { XmlSerializer formatter = new XmlSerializer(typeof(List <Issue>), new Type[] { typeof(Book), typeof(Journal), typeof(Mini_Issue), typeof(Brochure) }); using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate)) { Issues = (List <Issue>)formatter.Deserialize(fs); } } } else if (cbSerialize.SelectedIndex == 2) { if (cbPlugin.SelectedIndex == -1) { fileName = "Issues.txt"; } else { fileName = toDecode("Issues.txt"); } if (fileName != null) { using (StreamReader sr = new StreamReader(fileName, Encoding.Default)) { while (!sr.EndOfStream) { string[] line = sr.ReadLine().Split('|'); string clName = line[0].Substring(1, line[0].Length - 2); string natureOfInfo = line[1].Substring(1, line[1].Length - 2); bool originality = Convert.ToBoolean(line[2].Substring(1, line[2].Length - 2)); string audience = line[3].Substring(1, line[3].Length - 2); string name = line[4].Substring(1, line[4].Length - 2); int edition = Convert.ToInt32(line[5].Substring(1, line[5].Length - 2)); bool periodicity = Convert.ToBoolean(line[6].Substring(1, line[6].Length - 2)); string firstParam = ""; string secondParam = ""; string thirdParam = ""; bool isIllustr = false; bool isCatalog = false; if (clName == "Книга") { firstParam = line[7].Substring(1, line[7].Length - 2); secondParam = line[8].Substring(1, line[8].Length - 2); isIllustr = Convert.ToBoolean(line[9].Substring(1, line[9].Length - 2)); } else if (clName == "Журнал") { firstParam = line[7].Substring(1, line[7].Length - 2); secondParam = line[8].Substring(1, line[8].Length - 2); thirdParam = line[9].Substring(1, line[9].Length - 2); } else if (clName == "Мини-издание") { firstParam = line[7].Substring(1, line[7].Length - 2); } else if (clName == "Брошюра") { isCatalog = Convert.ToBoolean(line[7].Substring(1, line[7].Length - 2)); } Category currCategory = new Category(natureOfInfo, audience, originality); Issue curr = getIssueType(clName, name, edition, periodicity, currCategory, firstParam, secondParam, thirdParam, isIllustr, isCatalog); Issues.Add(curr); } } } } dataGridAndAllListsUpdate(); }
public void OutPutInfo(Issue issue) { Console.WriteLine("Целевая аудитория: {0}; название: {1}; тираж: {2}; " + "периодическое: {3}", issue.Category.TargetAudience, issue.Name, issue.Edition, issue.Periodicity); }
private void buttonSerialize_Click(object sender, EventArgs e) { if (cbSerialize.SelectedIndex == 0) { BinaryFormatter formatter = new BinaryFormatter(); using (FileStream fs = new FileStream("Issues.dat", FileMode.OpenOrCreate)) { formatter.Serialize(fs, Issues); } toEncode("Issues.dat"); } else if (cbSerialize.SelectedIndex == 1) { XmlSerializer formatter = new XmlSerializer(typeof(List <Issue>), new Type[] { typeof(Book), typeof(Journal), typeof(Mini_Issue), typeof(Brochure) }); using (FileStream fs = new FileStream("Issues.xml", FileMode.OpenOrCreate)) { formatter.Serialize(fs, Issues); } toEncode("Issues.xml"); } else if (cbSerialize.SelectedIndex == 2) { string infoText = String.Empty; for (int i = 0; i < Issues.Count; i++) { if (Issues[i] is Book) { Book curr = Issues[i] as Book; infoText += $"'Книга'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" + $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" + $"'{curr.Periodicity}'|'{curr.Author}'|'{curr.Binding}'|'{curr.IllustratedBookend}'\r\n"; } else if (Issues[i] is Journal) { Journal curr = Issues[i] as Journal; infoText += $"'Журнал'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" + $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" + $"'{curr.Periodicity}'|'{curr.SerialNumber}'|'{curr.Topic}'|'{curr.Redactors}'\r\n"; } else if (Issues[i] is Mini_Issue) { Mini_Issue curr = Issues[i] as Mini_Issue; infoText += $"'Мини-издание'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" + $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" + $"'{curr.Periodicity}'|'{curr.Kind}'\r\n"; } else if (Issues[i] is Brochure) { Brochure curr = Issues[i] as Brochure; infoText += $"'Брошюра'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" + $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" + $"'{curr.Periodicity}'|'{curr.IsCatalog}'\r\n"; } else { Issue curr = Issues[i] as Issue; infoText += $"'Не уточнено'|'{curr.Category.NatureOfInfo}'|'{curr.Category.Originality}'" + $"|'{curr.Category.TargetAudience}'|'{curr.Name}'|'{curr.Edition}'|" + $"'{curr.Periodicity}'\r\n"; } } using (FileStream fs = new FileStream("Issues.txt", FileMode.OpenOrCreate)) { byte[] array = Encoding.Default.GetBytes(infoText); fs.Write(array, 0, array.Length); } toEncode("Issues.txt"); } }