Курсовая работа: Сжатие данных методами Хафмана и Шеннона-Фано
Алгоритм: Вызывающая ф-ия CreateDeArc вырабатывает значение символа из разархивируемого файла и вызывает ф-ию SearchSymbol (Str:string); с параметром Str в котором находится выработанны символ. Ф-ия SearchSymbol прибавляет этот символ к строке Str1 в которой формируется кодовое слово}
Procedure SearchSymbol (Str:string);
var
v:integer;
SearchStr:String;//вспомогательная переменная в которую
//загоняются кодовые слова для сравнения их с Str1
a:byte;//переменная в которой будет находится найденный
//символ
begin
Str1:=Str1+Str;//растим кодовое слово
For v:=0 to MainFile.Stat.CountByte do
begin //производим поиск в массиве
SearchStr:=MainFile.Stat.massiv[v]^.CodWord ;
If (SearchStr=Str1) Then
begin
//если нашли то в а загоняем значение символа
a:=MainFile.Stat.massiv[v]^.Symbol;
//вызываем процедуру записи символа
MainBuffer.InsertByte(a);
//обнуляем строковую переменную
Str1:='';
//выходим из цикла
Break;
end;
end;
end;
Begin
BufSearch:='';{переменная в которой хранится выработанный символ, который будет передаватся в процедуру SearchSymbol}
CountBuf:=MainFile.FileSizeWOHead div count;