помогите решить головоломку с кодированием
От: Zdraitsa  
Дата: 28.07.05 10:40
Оценка:
есть код декодирования строки:


CString sUUE;
char* pBuff;


#define UUDEC(n) (n - ' ') & 077

CString    sCodeTable="`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_";
char a,b,c,d;
int t=0;
int nb=sCodeTable.Find(sUUE[0]); 
sUUE.Delete(0);

for (int i=0; i<sUUE.GetLength()/4; i++)
    {
        a=UUDEC(sUUE[4*i]);
        b=UUDEC(sUUE[4*i+1]);
        c=UUDEC(sUUE[4*i+2]);
        d=UUDEC(sUUE[4*i+3]);

        if (t<nb)
            pBuff[t++]=(char)(a<<2)|(b>>4);
        if (t<nb)
            pBuff[t++]=(char)(b<<4)|(c>>2);
        if (t<nb)
            pBuff[t++]=(char)(c<<6)|(d);
    }


нужна процедура ОБРАТНОЙ кодировки
помогите
Re: помогите решить головоломку с кодированием
От: raskin Россия  
Дата: 28.07.05 10:45
Оценка:
Zdraitsa wrote:
> есть код декодирования строки:
>
>
> CString sUUE;
> char* pBuff;
>
>
> #define UUDEC(n) (n — ' ') & 077
>
> CString sCodeTable="`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_";
> char a,b,c,d;
> int t=0;
> int nb=sCodeTable.Find(sUUE[0]);
> sUUE.Delete(0);
>
> for (int i=0; i<sUUE.GetLength()/4; i++)
> {
> a=UUDEC(sUUE[4*i]);
> b=UUDEC(sUUE[4*i+1]);
> c=UUDEC(sUUE[4*i+2]);
> d=UUDEC(sUUE[4*i+3]);
>
> if (t<nb)
> pBuff[t++]=(char)(a<<2)|(b>>4);
> if (t<nb)
> pBuff[t++]=(char)(b<<4)|(c>>2);
> if (t<nb)
> pBuff[t++]=(char)(c<<6)|(d);
> }
>
>
>
> нужна процедура ОБРАТНОЙ кодировки
> помогите -у
> помогите решить головоломку с кодированием <?mid=1296323> Оценить

Больно похоже на сам UUencode. берутся байты по три, трактуются как 4 по
6 бит, и в соответствии с табличкой
http://www.opengroup.org/onlinepubs/009695399/utilities/uuencode.html
перекодируются.
Posted via RSDN NNTP Server 2.0 beta
Re[2]: помогите решить головоломку с кодированием
От: Zdraitsa  
Дата: 28.07.05 10:51
Оценка:
Здравствуйте, raskin, Вы писали:



R>Больно похоже на сам UUencode. берутся байты по три, трактуются как 4 по

R>6 бит, и в соответствии с табличкой
R>http://www.opengroup.org/onlinepubs/009695399/utilities/uuencode.html
R>перекодируются.

ага точно! оно, я ж это тоже не сам придумал
а исходники там есть? чего не нашел пока...
Re[3]: помогите решить головоломку с кодированием
От: raskin Россия  
Дата: 28.07.05 11:16
Оценка:
Zdraitsa wrote:
> Здравствуйте, raskin, Вы писали:
>
>
>
> R>Больно похоже на сам UUencode. берутся байты по три, трактуются как 4 по
> R>6 бит, и в соответствии с табличкой
> R>http://www.opengroup.org/onlinepubs/009695399/utilities/uuencode.html
> R>перекодируются.
>
> ага точно! оно, я ж это тоже не сам придумал
> а исходники там есть? чего не нашел пока...

Не понял..
Какие исходники? писать 20 строк. Список симолов там есть.
a b c -> t u v w
t = a>>2
u = ((a&3)<<4) | (b>>4)
v = ((b&15)<<2) | (c>>2)
w = c&63

осталось добавить символы с этими индексами в строке.
Posted via RSDN NNTP Server 2.0 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.