Правильная структура структуры из Delphi упакованной записи

Я конвертирую приложение Delphi в C #. Существует множество упакованных записей, и в соответствии с аналогичным вопросом, который я задал несколько недель назад, было бы лучше перейти на занятия. Однако мне сказали, что мне нужно преобразовать их в структуры, и я мог бы использовать некоторую помощь. Я собираюсь использоватьBinaryReader читать из файла и присваивать значения полям внутри структур.

* Обратите внимание, файл, из которого я читаю, был создан с использованием Delphi и упакованных записей.

Вот пример структуры:

Delphi:

Testrec = packed record
    now: TDateTime;
    MinLat: longint;
    MinLong: longint;
    Firsttime: TDateTime;
    MinAlt: single;
    MinFirst: single;
    MinDepth: single;
    MinSpeed: single;
    MinBot: single;
    res3: single;
    res4: single;
    res5: single;
    res6: single;
    MaxLat: longint;
    MaxLong: longint;
    Lasttime: TDateTime;
    MaxAlt: single;
    MaxFirst: single;
    MaxDepth: single;
    MaxSpeed: single;
    MaxBot: single;
    res9: single;
    res10: single;
    res11: single;
    res12: single;
    DataFlags: longint;
    ReviewFlags: longint;
    res13: longint;
    FirstPost: longint;
end;

Вот моя версия C #:

public struct Testrec
{
    double now;
    int MinLat;
    int MinLong;
    double Firsttime;
    float MinAlt;
    float MinFirst;
    float MinDepth;
    float MinSpeed;
    float MinBot;
    float res3;
    float res4;
    float res5;
    float res6;
    int MaxLat;
    int MaxLong;
    double Lasttime;
    float MaxAlt;
    float MaxFirst;
    float MaxDepth;
    float MaxSpeed;
    float MaxBot;
    float res9;
    float res10;
    float res11;
    float res12;
    int DataFlags;
    int ReviewFlags;
    int res13;
    int FirstPost;
 }

Мне нужно сделатьStructLayout, Size, а такжеCharSet?

Изменить: Вот соответствующий код Delphi для чтения двоичного файла:

Testrec Header;
HeaderSize = 128;

RampStream:=TFileStream.Create(FilePath,fmOpenReadWrite OR fmShareExclusive );

RampStream.Read(Header,HeaderSize);
StartTime:=Header.Firsttime;
EndTime:=Header.Lasttime;

Вот как я настроил свой бинарный ридер:

RampStream = new BinaryReader(new FileStream(RampName, FileMode.Open, FileAccess.ReadWrite, FileShare.None));

Ответы на вопрос(1)

Ваш ответ на вопрос