Программа на C#

Максим16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
29.05.2009

Помогите реализовать следующую задачку на 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);

Также необходимо разработать серию примеров, демострирующих основные аспекты работы с реализованной библиотекой работы с типизированными файлами.