Kod: Zaznacz cały
while((fread(&litera, sizeof(unsigned char), 1, zrodlowy)) != 0)
{
for(i = 0; i < le; i++)
{
if(litera == tabkod[i].symbol)
break; //wiem, ze brzydko ale kosmetyke zrobie pozniej
}
temp = tabkod[i].kod;
if(wolne >= tabkod[i].dlugosc)
{
temp <<= (PACKET - (wolne - tabkod[i].dlugosc));
paczka |= temp;
wolne -= tabkod[i].dlugosc;
}
else
{
temp >>= (tabkod[i].dlugosc - wolne);
paczka |= temp;
fwrite(&paczka, sizeof(unsigned int), 1, docelowy);
paczka ^= paczka;
temp = tabkod[i].kod;
temp <<= (PACKET - (tabkod[i].dlugosc + wolne));
paczka |= temp;
wolne += tabkod[i].dlugosc;
}
if (wolne == 0)
{
write (&paczka, sizeof(unsigned int), 1, docelowy);
paczka = 0;
wolne = PACKET;
}