blob: 7285312039d0db3becf6a6e52f00472521bf3ce8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
program t2;
{$IFDEF FPC}
{$mode Delphi}
{$ENDIF}
uses
SysUtils;
type
Tb = array of byte;
int = integer;
TMeS = class
private
FD: Tb;
Fp: Integer;
public
constructor Create(cty: int);
procedure Write(const Buffer: TB; Offset: int; Count: int); overload;
procedure Write(Buffer: PAnsiChar; Offset: int; Count: int); overload;
end;
constructor TMeS.Create(cty: int);
begin
inherited Create;
SetLength(FD, cty);
end;
procedure TMeS.Write(Buffer: PAnsiChar; Offset: int; Count: int);
begin
Move(Buffer[Offset], PAnsiChar(@FD[FP])^, Count);
Inc(FP, Count);
end;
procedure TMeS.Write(const Buffer: TB; Offset: int; Count: int);
begin
Write(PAnsiChar(@Buffer[0]), Offset, Count);
end;
var vmes:tmes;
const vac:string='test1 copy string';
vtb:string='test2 copy bytes 10';
var
s: string;
begin
vmes:=tmes.Create(16);
vmes.write(Pansichar(vac),1,10);
vmes.Write(tb(vtb),10,5);
writeln('"',string(vmes.FD),'"');
s:=pchar(vmes.fd);
if (s<>'est1 copy byte') then
halt(1);
end.
|