case "read":
try
{
// Создайте читателя, то есть StreamReader
// file =
}
catch (FileNotFoundException)
{
Console.WriteLine("\nFile: " + fileName + " not found");
return null;
}
StreamReader sr = file as StreamReader; // Приведение типа: расплата за универсальность
string line = sr.ReadLine ();
if (!line.Equals (version))
{
Console.WriteLine("\nWrong file format: " + fileName);
sr.Close ();
return null;
}
return file;
case "write":
try
{
// Создайте писателя, то есть StreamWriter
// file =
}
catch (IOException)
{
Console.WriteLine("\nCan not write to: " + fileName);
return null;
}
StreamWriter sw = file as StreamWriter;
sw.WriteLine (version + "\n");
return file;
default: return null;
}
}
public void Write ()
{
if (men.Count == 0)
{
Console.WriteLine ("List is empty");
return;
}
WriteText ();
WriteBinary ();
WriteSoap ();
WriteXml ();
Console.WriteLine ("List has been stored in all formats");
bNew = bModified = false;
}
void WriteText ()
{
fileName = Path.ChangeExtension (fileName, ".txt");
// Обратитесь к методу FileOpen("write") и приведите тип (as StreamWriter)
// StreamWriter sw =
if (sw != null)
{
foreach (Man m in men)
sw.WriteLine (m);
}
sw.Close ();
}
void WriteBinary ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
void WriteSoap ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
void WriteXml ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
public void Read ()
{
if (men.Count != 0)
{
Console.WriteLine ("Deleting current list");
men.Clear ();
}
switch (ReadWriteMenu ())
{
default: return;
case 't': ReadText (); break;
case 'b': ReadBinary (); break;
case 's': ReadSoap (); break;
case 'x': ReadXml (); break;
}
bModified = false;
Show ();
}
void ReadText ()
{
fileName = Path.ChangeExtension (fileName, ".txt");
// Обратитесь к методу FileOpen("read") и приведите тип (as StreamReader)
// StreamReader sr =
if (sr == null)
{
Console.WriteLine ("Could not open: " + fileName);
return;
}
Console.WriteLine ("Reading from: " + Path.GetFileName (fileName));
string line;
while ((line = sr.ReadLine ()) != null)
{
if (line == "")
continue;
Man m;
switch (line[0])
{
case 'S': /* Ваш код */ break;
case 'P': /* Ваш код */ break;
default: return;
}
string[] tokens = // Разбейте строку на подстроки с помощью метода Split
m.Read (tokens); // Здесь работает полиморфизм поздего связывания
men.Add (m);
}
sr.Close ();
}
void ReadBinary ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
void ReadSoap ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
void ReadXml ()
{
// Создайте код, как рассказано ниже. Не забудьте закрыть файл
}
public void Quit ()
{
if (bModified)
{
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.