Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Распаковщик


Автор: koljan 8.6.2006, 20:25
вот задание 
Цитата

22. Напишите программу, которая восстанавливает исходный файл из файла, “сжатого” с помощью программы из предыдущего 21 задания.


вот задание 21
Цитата

Напишите программу, которая “сжимает” текстовый файл, считывая его и заменяя все повторяющиеся символы ccc . . . текстом с(n), где n- число повторений символа с.В программе используйте процедуры.



 

Автор: londinium 9.6.2006, 08:45
По-моему, это так называемый алгоритм RLE, в Интернете есть исходники (например, стоит начать с compression.graphicon.ru)

Автор: koljan 9.6.2006, 17:06
всё написал вот код
Код

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
f1,f2:textFile;
str,strtmp,symb:string;
i,j,kol:integer;
mas:array of integer;

begin
assign(f1,'c:\temp\1.txt');
reset(f1);
assign(f2,'c:\temp\output.txt');
rewrite(f2);
while not eof(f1) do
  begin
       readln(f1,str);

  for i:=1 to length(str) do
     begin
       if str[i]='(' then
       begin
       j:=i;
           while true do
           begin

             inc(j);
             if str[j]<>')' then strtmp:=strtmp+str[j]
             else break;
           end;
       end;
       if strtmp<>'' then
       begin
       kol:=strtoint(strtmp);
       strtmp:='';
       for j:=1 to kol do
         strtmp:=strtmp+str[i-1];
       write(f2,strtmp);
       strtmp:='';
       end;
       end;
   end;
  closefile(f1);
  closefile(f2);
end.

 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)