Кодирование длин серий (Run-length encoding, RLE) - простая техника сжатия,при которой каждая последовательность знаков, которые состоят более чем из 2 одинаквых знаков, кодируется по первому знаку и длине последовательности.
Реализуйте простой вариант этого способа в форме программы фильта, которая кодирует и снова декодирует текстовые файлы,в которых содержатся только строчные и прописные буквы , знаки препинания и пробелы (но не цифры).Ваша программа должна предлогать следующие возможности вызова из камандной строки (метасимболы[...] и ...|... стоят для опций или альтернатив):
RLE [ -c | -d ] [inFile] [outFile]
Значение параметров:
-c входной файл нужно кодировать (значение по умолчанию),
-d входной файл нужно декодировать,
inFile имя входного файла, иначе стандартный ввод (input)
outFile имя выходного файла, иначе стандартный вывод (output).
Пример:

Файлы я пока не трогала...Попыталась просто кодировать. В переменную ch сохраняю символ, если он равен следующему - увеличиваю счетчик, если нет - скидываю в строку str2 и текущий символ сохраняю снова в ch и так далее. Не работает..:
var x, str1, str2, ch,countstr : string;
i, k, count : integer;
begin
countstr:= '';
ch := '';
str2 := '';
count := 0;
Readln(str1);
for i := 1 to Length(str1) do begin
if i=1 then begin
ch:=str1[1];
count:= 1;
end
else begin
if ch= str1[i] then
inc(count)
else begin
if count > 2 then begin
Str(count,countstr);
str2:= countstr+ch
end
else begin
for k := 1 to count do
str2 := str2+ch;
ch := str1[i];
count := 1;
end;
end;
end;
end;
end.