//code
uint32_t urlno = ptmpUWArray[i].urlNo - cururlno;
cururlno = ptmpUWArray[i].urlNo;
/**佸弫獊鍋佺悊urlno */
while ((urlno & ~0x7F) != 0)
{
pOPBuf[j++] = (urlno & 0x7f) | 0x80;
urlno >>= 7;
m_fRemainDOffset++;
idxRemain.lenData++;
}
m_fRemainDOffset += 3;
idxRemain.lenData += 3;
pOPBuf[j++] = (char) urlno;
pOPBuf[j++] = pUWBuf[i * sizeof(urlno_wei) + 4];
pOPBuf[j++] = pUWBuf[i * sizeof(urlno_wei) + 5];
//decode
char* tmp = (char*)re_index.m_cururl;
int i = (*tmp) & 0x7F;
for (int shift = 7; ((*tmp) & 0x80) != 0; shift += 7)
{
re_index.m_cururllen++;
tmp = tmp + 1;
i |= ((*tmp) & 0x7F) << shift;
}
懸驊为urlno懚☉义懳獞占8懜鰬字懡趹,懯龖据懥繎太懘髴的懟皯会懕葢较懻紤空懠鋺,懩繎前懖蓱用懙膽方懛☉是懚詰相懥趹的url懖顟值懡鴳行懖顟分懘鎽储懀瑧压懰鯌的懛綉式懯菓以7懳粦为懸粦个懙位懀瑧通懝龖第8懳粦是懛駪为1懤磻判懚蠎差懛謚rlno懯菓否懹袘继懶鴳的憽?懸驊为懯菓变懗连懶鴳存懘,懨粦有懡釕尾懞蛻偏懸茟信懴,懰鶓以懡鈶压懰鯌时懞驊的懟簯冲懬鴳需懸獞采懹脩一懚☉的懠紤巧懀瑧目懬皯是懙睉指懻霊离懳矐部10懜鰬字懡趹时懠虘续懲鶓下懚翍缓懘鎽,懻鈶样懕证懥藨数懢輵的懷討续憽代懧霊如懴聭:
if((REMAIN_SIZE-label)<10 )
{
char ptemp_switch[50 ]="\0";
int remain_num=REMAIN_SIZE-label;
memcpy(ptemp_switch , ptemp+label ,remain_num);
free (ptemp);
ptemp=(char *)calloc ( REMAIN_SIZE ,sizeof (char ));
memcpy(ptemp , ptemp_switch ,remain_num );
if(fread(ptemp+remain_num,1,REMAIN_SIZE-remain_num,fpREMAINData) !=REMAIN_SIZE-remain_num)
{
printf("error \n");
}
label=0;
}
int cururllen=0;
char* tmp = (char*)ptemp+label;
int i = (*tmp) & 0x7F;
int shift;
for ( shift = 7; ((*tmp) & 0x80) != 0; shift += 7)
{
cururllen++;
offset_count++;
label++;
tmp = tmp + 1;
i |= ((*tmp) & 0x7F) << shift;
}
if(shift==7)
{
}
else
{
i |= ((*tmp) & 0x7F) << shift;
}