> -- Сергей Губанов писал(а):
> побайтово скопировать
Например, сочиним какую-нибудь эдакую хитрую структурку:
## Код:
```
TYPE
    Message* = ABSTRACT RECORD END;
    
    T1* = EXTENSIBLE RECORD (Message)
      x*: BYTE
    END;
    
    A1* = ARRAY 2 OF T1;

    T2* = RECORD (Message)
      x*: BYTE;
      t*: T1;
      a*: A1;
      b*: ARRAY 4 OF RECORD x: BYTE END;
    END;
```

Затем запишем в её поля последовательно 1, 2, 3,...; скопируем её содержимое в массивaи распечатаем элементы массива:
## Код:
```
PROCEDURE Test0*; (* (!)TestSerialization.Test0 *)
    CONST N = SIZE(T2);
    VAR i: INTEGER;
    r: T2;
    a: ARRAY N OF BYTE;
  BEGIN
    r.x := 1; r.t.x := 2; r.a[0].x := 3; r.a[1].x := 4; 
    r.b[0].x := 5; r.b[1].x := 6; r.b[2].x := 7; r.b[3].x := 8;
    FOR i := 0 TO N-1 DO a[i] := 0 END;
    SYSTEM.MOVE(SYSTEM.ADR(r), SYSTEM.ADR(a[0]), N);
    FOR i := 0 TO N-1 DO
      L.String("a["); L.Int(i); L.String("] ="); L.Int(a[i]); L.Ln
    END
  END Test0;
```

Результат:
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5
a[5] = 6
a[6] = 7
a[7] = 8
Значит, вроде как можно, вместо мета-разбора полей, просто побайтово копировать (ну, естественно, это справедливо только если она передаётся на компьютер с тем же порядком big/litle-endian нумерацией битов, но, практически, кроме как на x86 платформе Блэкбокса всё равно пока что-то не видно).