У меня есть массив традиционных записей.Доступ к полям (традиционной) записи
Как получить доступ к полю N-й записи, когда я знаю адрес начала записи, смещение поля и тип поля? например.
type
Tstring = string[20];
TRecord = packed record
aInteger : integer;
aDouble : double;
aString : Tstring ;
bString : string;
end;
var
aArray : array[0..N] of Trecord;
p : pointer;
....
p := pointer(cardinal(aArray[5])+12); // 12 = offset of field "aString"
writeln(Tstring(p^);
и так далее ...
это не работает, как я ожидал. Где я ошибаюсь, пожалуйста?
Пожалуйста, добавьте тег языка и немного объясните, что вы подразумеваете под традиционной записью в этом контексте? – paisanco
@paisanco выглядит как некоторый аромат паскаля, возможно [object pascal] (http://docwiki.appmethod.com/appmethod/1.13/topics/en/Structured_Types#Records_.28traditional.29) –
Зачем вам это нужно ? Если вы знаете, что 'aArray [5]' является 'TRecord', почему бы просто не прибегнуть к типу и доступу напрямую с помощью TRecord (aArray [5]). AString'? –