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

Нет возможности обкатать функцию в ActionScript и посмотерть на её результаты в этом языке.
Поэтому, пока что обкатываю в JavaScript. Надеюсь у них приоритеты операций идентичны.
А по сему, функция и выражения в ней для делфи получили следующий вид:
Код:
 Type ArrayOfInteger = Array Of Integer;

  function createBlocksFromString(arg1:String):ArrayOfInteger;
    var loc1 :ArrayOfInteger;
    var loc2 : Integer;
    var loc3: Integer;
    var loc4: Integer;
        Begin
//            loc1:*=new Array();
            loc2 := LenGth(arg1) * 8;
            SetLenGth(loc1,(((loc2 + 64) shr 9) shl 4) + 15);
            loc3 :=255;
            loc4 :=0;
            while (loc4 < loc2) do
              Begin
                loc1[loc4 shr 5] := (loc1[loc4 shr 5]) or (byte(arg1[(loc4 div 8)+1]) and loc3) shl ((24 - loc4) mod 32);
                loc4 := loc4 + 8;
              End;
            loc1[loc2 shr 5] := loc1[loc2 shr 5] or (128 shl ((24 - loc2) mod 32));
            loc1[(((loc2 + 64) shr 9) shl 4) + 15] := loc2;
            Result := loc1;
        End;

to icWasya, ещё раз благодарю за наводку про скобки и разноправие операций в виражениях.
Ответить с цитированием