GestioneFile.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace EsercitazioneVerifica
  8. {
  9. static class GestioneFile
  10. {
  11. static string Path = @"c:\document\paperino\";
  12. static string NomeFile = "pluto.dat";
  13. static string Pathd = Path + NomeFile;
  14. static int[] Lunghezze = { 6, 6, 1, 4, 3,1 };
  15. static public void MakeDirectory()
  16. {
  17. try
  18. {
  19. Directory.CreateDirectory(Path);
  20. FileStream fs = File.Create(Pathd);
  21. fs.Close();
  22. }catch(IOException e)
  23. {
  24. Console.WriteLine(e.Message);
  25. }
  26. }
  27. static public void Scrivi(Studente s)
  28. {
  29. try
  30. {
  31. // creo delle variabili a cui convertitro i valori in stringa
  32. string Classe = s.Classe.ToString();
  33. string Anno_Nascità = s.Anno_nascita.ToString();
  34. char pippo = 'p';
  35. string record;
  36. if (s.Nome.Length > Lunghezze[0])
  37. {
  38. s.Nome = s.Nome.Remove(Lunghezze[0]);
  39. }
  40. if (s.Cognome.Length > Lunghezze[1])
  41. {
  42. s.Cognome = s.Cognome.Remove(Lunghezze[1]);
  43. }
  44. if (Classe.Length > Lunghezze[2])
  45. {
  46. Classe = Classe.Remove(Lunghezze[2]);
  47. }
  48. if (Anno_Nascità.Length > Lunghezze[3])
  49. {
  50. Anno_Nascità = Anno_Nascità.Remove(Lunghezze[3]);
  51. }
  52. if (s.Inidirizzo.Length > Lunghezze[4])
  53. {
  54. s.Inidirizzo = s.Inidirizzo.Remove(Lunghezze[4]);
  55. }
  56. // scrivo sul record
  57. record = s.Nome.PadRight(Lunghezze[0], ' ') + s.Cognome.PadRight(Lunghezze[1], ' ') + Classe.PadRight(Lunghezze[2], ' ') + Anno_Nascità.PadRight(Lunghezze[3], ' ') +
  58. s.Inidirizzo.PadRight(Lunghezze[4], ' ') + pippo + System.Environment.NewLine;
  59. StreamWriter sw = new StreamWriter(Pathd, true);
  60. sw.Write(record);
  61. sw.Close();
  62. }
  63. catch (IOException e)
  64. {
  65. Console.WriteLine(e.Message);
  66. }
  67. }
  68. static public List<Studente> Leggi()
  69. {
  70. try
  71. {
  72. List<Studente> studente = new List<Studente>();
  73. string record;
  74. string[] campi;
  75. StreamReader sr = new StreamReader(Pathd);
  76. while ((record = sr.ReadLine()) != null)
  77. {
  78. campi = RicavaCampi(record);
  79. studente.Add(new Studente(campi[0], campi[1], Convert.ToInt32(campi[2]), Convert.ToInt32(campi[3]), campi[4],'q'));
  80. }
  81. sr.Close();
  82. return studente;
  83. }
  84. catch (IOException e)
  85. {
  86. Console.WriteLine(e.Message);
  87. }
  88. return null;
  89. }
  90. static private string[] RicavaCampi(string record)
  91. {
  92. string[] campi = new string[Lunghezze.Length];
  93. int pos=0;
  94. int i = 0;
  95. int j = 0;
  96. do
  97. {
  98. campi[j] = record.Substring(pos, Lunghezze[i]).TrimEnd(' ');
  99. pos += Lunghezze[i];
  100. j++;
  101. i++;
  102. } while (i < Lunghezze.Length);
  103. return campi;
  104. }
  105. }
  106. }