Advertisement
themkss

Untitled

May 2nd, 2023
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.40 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6. using System.Web;
  7.  
  8. namespace LB4_V2
  9. {
  10.     public class InOut
  11.     {
  12.         /// <summary>
  13.         /// Reads the starting data
  14.         /// </summary>
  15.         /// <param name="fileName"></param>
  16.         /// <returns></returns>
  17.         /// <exception cref="Exception"></exception>
  18.         public static List<LibraryRegister> ReadData(string fileName)
  19.         {
  20.             if (Directory.GetFiles(fileName, "*.txt").Count() == 0)
  21.             {
  22.                 throw new Exception(string.Format("Nėra .txt duomenų failų nurodytame aplankale"));
  23.             }
  24.  
  25.             List<LibraryRegister> registerList = new List<LibraryRegister>();
  26.  
  27.             foreach (string txtName in Directory.GetFiles(fileName, "*.txt"))
  28.             {
  29.                 LibraryRegister register = new LibraryRegister();
  30.  
  31.                 string[] lines = File.ReadAllLines(txtName);
  32.  
  33.                 string lName = lines[0];
  34.                 string address = lines[1];
  35.                 string phoneNumber = lines[2];
  36.  
  37.                 register.name = lName;
  38.                 register.address = address;
  39.                 register.phoneNumber = phoneNumber;
  40.  
  41.                 for (int i = 3; i < lines.Length; i++)
  42.                 {
  43.                     var values = Regex.Split(lines[i], "; ");
  44.  
  45.                     string name = values[0];
  46.                     string type = values[1];
  47.                     string publishingPlace = values[2];
  48.                     int yearOfRelease = int.Parse(values[3]);
  49.                     int numberOfPages = int.Parse(values[4]);
  50.                     int edition = int.Parse(values[5]);
  51.  
  52.                     if (type.Equals("Book"))
  53.                     {
  54.                         string ISBN = values[6];
  55.                         string author = values[7];
  56.  
  57.                         Book book = new Book(name, type, publishingPlace, yearOfRelease, numberOfPages, edition, ISBN, author);
  58.                         register.Add(book);
  59.                     }
  60.                     else
  61.                     {
  62.                         if (type.Equals("Journal"))
  63.                         {
  64.                             string ISBN = values[6];
  65.                             int number = int.Parse(values[7]);
  66.                             int monthOfRelease = int.Parse(values[8]);
  67.  
  68.                             Journal journal = new Journal(name, type, publishingPlace, yearOfRelease, numberOfPages, edition,
  69.                                 ISBN, number, monthOfRelease);
  70.                             register.Add(journal);
  71.                         }
  72.                         else
  73.                         {
  74.                             DateTime date = DateTime.Parse(values[6]);
  75.                             int number = int.Parse(values[7]);
  76.                             string monthAndDayOfRelease = values[8];
  77.  
  78.                             Newspaper newspaper = new Newspaper(name, type, publishingPlace, yearOfRelease, numberOfPages,
  79.                                 edition, date, number, monthAndDayOfRelease);
  80.                             register.Add(newspaper);
  81.                         }
  82.                     }
  83.                 }
  84.                 registerList.Add(register);
  85.             }
  86.             return registerList;
  87.         }
  88.  
  89.         /// <summary>
  90.         /// Prints data to a CSV file.
  91.         /// </summary>
  92.         /// <param name="fileName"></param>
  93.         /// <param name="header"></param>
  94.         /// <param name="publications"></param>
  95.         public static void PrintToCSV(string fileName, string header, List<Publication> publications)
  96.         {
  97.             StreamWriter sw = new StreamWriter(fileName, true);
  98.  
  99.             sw.WriteLine(header);
  100.  
  101.             for (int i = 0; i < publications.Count(); i++)
  102.             {
  103.                 sw.WriteLine(publications[i].ToString());
  104.             }
  105.  
  106.             sw.Close();
  107.         }
  108.  
  109.         /// <summary>
  110.         /// Prints data to a CSV file
  111.         /// </summary>
  112.         /// <param name="fileName"></param>
  113.         /// <param name="header"></param>
  114.         /// <param name="publications"></param>
  115.         public static void PrintToCSV(string fileName, string header, LibraryRegister publications)
  116.         {
  117.             StreamWriter sw = new StreamWriter(fileName, true);
  118.  
  119.             sw.WriteLine(header);
  120.  
  121.             for (int i = 0; i < publications.Count(); i++)
  122.             {
  123.                 Publication p = publications.Get(i);
  124.                 sw.WriteLine(p.ToString());
  125.             }
  126.  
  127.             sw.Close();
  128.         }
  129.  
  130.         /// <summary>
  131.         /// Prints starting data to a file
  132.         /// </summary>
  133.         /// <param name="fileName"></param>
  134.         /// <param name="header"></param>
  135.         /// <param name="registerList"></param>
  136.         public static void PrintStartData(string fileName, string header, List<LibraryRegister> registerList)
  137.         {
  138.             StreamWriter sw = new StreamWriter(fileName, true);
  139.  
  140.             sw.WriteLine(header);
  141.             sw.WriteLine();
  142.  
  143.             for (int i = 0; i < registerList.Count(); i++)
  144.             {
  145.                 sw.WriteLine(registerList[i].name);
  146.                 sw.WriteLine(registerList[i].address);
  147.                 sw.WriteLine(registerList[i].phoneNumber);
  148.  
  149.                 for (int j = 0; j < registerList[i].Count(); j++)
  150.                 {
  151.                     sw.WriteLine(registerList[i].Get(j).ToString());
  152.                 }
  153.  
  154.                 sw.WriteLine();
  155.             }
  156.  
  157.             sw.Close();
  158.         }
  159.  
  160.         /// <summary>
  161.         /// Prints data to a file
  162.         /// </summary>
  163.         /// <param name="fileName"></param>
  164.         /// <param name="header"></param>
  165.         /// <param name="register"></param>
  166.         public static void PrintData(string fileName, string header, List<LibraryRegister> register)
  167.         {
  168.             StreamWriter sw = new StreamWriter(fileName, true);
  169.  
  170.             sw.WriteLine(header);
  171.             sw.WriteLine();
  172.  
  173.             for (int i = 0; i < register.Count(); i++)
  174.             {
  175.                 sw.WriteLine(register[i].name);
  176.                 for (int j = 0; j < register[i].Count(); j++)
  177.                 {
  178.                     sw.WriteLine(register[i].Get(j).name + " " + register[i].Get(j).edition);
  179.                 }
  180.             }
  181.  
  182.             sw.Close();
  183.         }
  184.     }
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement