> -- Trurl писал(а):
> бессмысленно.

## Код:
```
TYPE
  Packet* = RECORD
    length-: INTEGER;
    pos-: INTEGER;
    buff-: ARRAY 32768 OF BYTE (* столько хватит? *)
  END;

  PROCEDURE (VAR this: Packet) Clear*, NEW;
    VAR i: INTEGER;
  BEGIN this.length := 0; this.pos := 0;
    FOR i := 0 TO LEN(this.buff)-1 DO this.buff[i] := 0 END
  END Clear;

  PROCEDURE (VAR this: Packet) WriteByte* (value: BYTE), NEW;
  BEGIN ASSERT(this.pos < LEN(this.buff));
    this.buff[this.pos] := value; INC(this.pos); 
    IF this.length < this.pos THEN this.length := this.pos END
  END WriteByte;

  PROCEDURE (VAR this: Packet) SetPos* (pos: INTEGER), NEW;
  ...
```
