В чём здесь принципиальная разница?

 

'Групповые файловые операции'

for (int i=0; i<64; i++)
{
pos++;
int curr = buffer[pos];
text = text 
+CharToStr(curr & 0x000000FF)
+CharToStr(curr >> 8 & 0x000000FF)
+CharToStr(curr >> 16 & 0x000000FF)
+CharToStr(curr >> 24 & 0x000000FF);
}

И

's_wininet'
for(int i = 0; i < 256; i++)
{
text=text+CharToStr(cBuffer[i] & 0x000000FF); if(StringLen(text)==dwBytesRead[0]) break;
text=text+CharToStr(cBuffer[i] >> 8 & 0x000000FF); if(StringLen(text)==dwBytesRead[0]) break;
text=text+CharToStr(cBuffer[i] >> 16 & 0x000000FF); if(StringLen(text)==dwBytesRead[0]) break;
text=text+CharToStr(cBuffer[i] >> 24 & 0x000000FF);
}


Ну кроме очевидных вещей...

Более всего интересует различие в счётчиках: 256 и 64

и отсутствие if(StringLen(text)==dwBytesRead[0]) break; в последней строке второго кода...

 

Первый расчитан на фиксированную длину строки 64 символа.

Второй на переменную длинну строки dwBytesRead[0], но не больше максимальной длинны 256.

Последнего ифа нет поскольку первые три используются для досрочного выхода из цикла когда длинна строки не кратна 4 байтам в которые впихивается последние 1\2\3 символа.


Вроде так.....

Причина обращения: