using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace WorkWithFile2
{
class Program
{
[SerializableAttribute]
struct Schedule
{
// id рейса
public string idPoleta;
// направление
public string flightWay;
// дата вылета
public DateTime airDate;
// продолжительность полета
public int durationOfFlight;
// количество свободных мест
public int freePlaces;
}
static void Main(string[] args)
{
BinaryFormatter bf = new BinaryFormatter();
FileStream fs = new FileStream(@"C:\Temp\schedule.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
Schedule shd;
int choise = 1;
while (choise != 0 )
{
Console.WriteLine("[1] - Добавить новый рейс");
Console.WriteLine("[2] - Показать распиание");
Console.WriteLine("[0] - Выход");
Console.Write("Выбор: ");
choise = int.Parse(Console.ReadLine());
switch (choise)
{
case 1:
{
Console.WriteLine("Добавить новый полет");
Console.Write("Введите ID рейса: ");
shd.idPoleta = Console.ReadLine();
Console.Write("Введите направление рейса: ");
shd.flightWay = Console.ReadLine();
Console.Write("Введите дату и время вылета (прим.: 12 мая 2016 12:36:55): ");
shd.airDate = DateTime.Parse(Console.ReadLine());
Console.Write("Введите продолжительность полета в часах (прим.: 12): ");
shd.durationOfFlight = int.Parse(Console.ReadLine());
Console.Write("Введите количество свободных мест: ");
shd.freePlaces = int.Parse(Console.ReadLine());
bf.Serialize(fs, shd);
fs.Flush();
fs.Seek(0, SeekOrigin.Begin);
shd = (Schedule)bf.Deserialize(fs);
Console.WriteLine("Рейс добавлен.");
Console.WriteLine("\tID рейса: {0}", shd.idPoleta);
Console.WriteLine("\tНаправление рейса: {0}", shd.flightWay);
Console.WriteLine("\tДата и время вылета: {0}", shd.airDate.ToString("dd.MM.yyyy HH:mm"));
Console.WriteLine("\tПродолжительность полета: {0} часов", shd.durationOfFlight);
Console.WriteLine("\tКоличество свободных мест: {0}", shd.freePlaces);
fs.Close();
break;
}
}
}
}
}
}
FileMode.OpenOrCreate
FileMode.Append
fs.Seek(0, SeekOrigin.Begin);
fs.Close();
shd = (Schedule)bf.Deserialize(fs);
List<Schedule> schedules;
schedules.Add(new Schedules())
List<Schedules>