Показать сообщение отдельно
  #7  
Старый 14.05.2013, 14:00
Аватар для seeman_tm
seeman_tm seeman_tm вне форума
Новичок
 
Регистрация: 03.02.2011
Сообщения: 79
Репутация: -2306
По умолчанию

icWasya, разницы не увидел, но выглядит лучше. Так что возьму в обиход.
Так же нашел неточность в переводе.
ActionScript:
Код:
 loc1[loc4 >> 5] = loc1[loc4 >> 5] | (arg1.charCodeAt(loc4 / 8) & loc3) << 24 - loc4 % 32;

Было в делфи:
Код:
loc1[loc4 shr 5] := loc1[loc4 shr 5] or (Byte(arg1[Round(loc4 / 8)]) And loc3) shl 24 - loc4 mod 32;

Но так как у переменных типа String в Delphi первый символ имеет индекс 1 (массивы начинаются с 0 для первого элемента).
А в переменных типа String в ActionScript, первый символ имеет индекс 0 как и просто массивы.

Поэтому:
Код:
loc1[loc4 shr 5] := loc1[loc4 shr 5] or (Byte(arg1[Round(loc4 / 8)+1]) And loc3) shl 24 - loc4 mod 32;
Ну или так:
Код:
loc1[loc4 shr 5] := loc1[loc4 shr 5] or (Byte(arg1[(loc4 div 8)+1]) And loc3) shl 24 - loc4 mod 32;

Кто нить ещё увидел ошибку ?
Ответить с цитированием