Программа на C#
Помогите реализовать следующую задачку на C#
Библиотека для сохранения/чтения объектов в типизированный (в терминах языка Pascal) файл / из файла
Необходимо разработать набор классов, обеспечивающих работу с типизированными файлами как в языке Pascal:
TypedFile
методы:
void Assign(String filename)
void Reset()
void Rewrite(T[] values)
void Append();
void Seek();
void Truncate();
void Write(T value);
T Read();
свойства:
int RecordSize;
int FileSize;
FileMode FileMode; (FileMode – перечисление)
String Filename;
int Pos;
bool Eof;
ITypedDataConverter – используется внутри класса TypedFile для преобразования объектов (экземпляров структур или классов T) в массив байтов фиксированной длины (RecordSize и обратно) и обратно; предположительно передается как параметр в конструктор класса TypedFile;
методы:
byte[] ToByteArray(T value);
T FromByteArray(byte[] data);
своиства:
int RecordSize
DelegatesTypedDataConverter: ITypedDataConverter – класс, экземпляр которого можно сконструировать, указав размер записи T, а также два делегата ToByteArrayDelegate и FromByteArrayDelegate соотвествующего типа;
• TypedFileException – класс, описывающий исключения, которые могут происходить в ходе работы c типизированными файлами.
• TypedFileUtils
методы:
static void Remove(TypedFile, int pos);
static bool Exists(TypedFile, TestDelegate);
static T[] Read(TypedFile);
static T[] Read(TypedFile, TestDelegate);
static T ReadFirst(TypedFile, TestDelegate);
static T ReadLast(TypedFile, TestDelegate);
static int GetIndex(TypedFile, TestDelegate);
static int FindLastIndex(TypedFile, TestDelegate);
static void ForEach(IList, ActionDelegate);
static void ChangeAll(TypedFile, ActionDelegate);
static void Sort(TypedFile, CompareDelegate);
static bool CheckForAll( TypedFile, TestDelegate);
Также необходимо разработать серию примеров, демострирующих основные аспекты работы с реализованной библиотекой работы с типизированными файлами.