Помогите доработать программу
программа вылетает при выводе результа. и если здесь возможно,помогите пожалуйста дописать часть кода так ,чтобы выдавался размер до архивации и после
Код:
function encode(s:string):string;//функция архивации
var i,j:integer;
k:string;
begin
i:=1;
while i <= length(s) do
begin
j:=i;
while (s[i] = s[j+1]) do
inc(j);
if (j-i = 0) or (j-i = 1) or (j-i =2) then
begin
k := k + s[i];
if (s[i]='0') then k:=k+'0';
inc(i)
end
else
begin
k:= k + inttostr(j-i+1) + s[i];
inc(i,j-i+1)
end;
end;
result:= k;
end;
//--------------------------------------
function decode(s:string):string;//функция разархивации
var i,j,c:integer;
k:string;
m: string;
begin
i:=1;
while i <= length(s) do
begin
j:=i;
while s[j] in ['0'..'9'] do
inc(j);
if j-i > 0 then
begin
m:= copy(s,i,j-i);
for c:=1 to strtoint(m) do k:= k+ s[j];
delete(s,i,j-i+1);
end
else
begin
k:= k+ s[i];
inc(i);
end;
end;
result:= k;
end;
begin
Writeln('Введите текст для архивации');
read(m);
writeln(encode(m));
writeln(decode(m));
Readln;
end.