Дамп объекта record

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Дамп объекта record

Сообщение DYUMON » 27.08.2020 15:49:10

Доброго всем времени суток.
Ранее с подобным не сталкивался, но вот пришлось залезть в дебри.
Допустим есть такой объект
Код: Выделить всё
type
  TLength = array [0..1] of byte;
  TAuthenticatorMask = array  [0..15] of byte;
  TAttributesList = array [0..4075] of byte;

  TRadiusPacket = record
    rCode: byte;
    rIdentifier: byte;
    rLength: TLength;
    rAuthenticator: TAuthenticatorMask;
    rAttributes: TAttributesList;
  end;


Можно ли как то его сдампить , что бы посмотреть что в нем внутри лежит?
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Re: Дамп объекта record

Сообщение iskander » 27.08.2020 18:17:48

Сдампить - это значит распечатать в удобочитаемой форме?
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Дамп объекта record

Сообщение DYUMON » 27.08.2020 18:24:39

Да не обязательно, просто хотя бы строку получить вида 000102A11C
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Re: Дамп объекта record

Сообщение iskander » 27.08.2020 19:11:06

По простому можно так:
Код: Выделить всё
...
uses
   ..., StrUtils, ...

function HexDump(const aBuffer; aBufSize: Integer): string;
begin
  SetLength(Result, aBufSize * 2);
  BinToHex(PChar(@aBuffer), PChar(Result), aBufSize);
end;
...
var
  p: TRadiusPacket;
...
WriteLn('p: ', HexDump(p, SizeOf(p)));

Но если запись не упакована, то придётся самому вычислять, где кончается одно поле и начинается другое.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Дамп объекта record

Сообщение DYUMON » 28.08.2020 06:03:15

Благодарю, такой вариант вполне подошел.
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru