Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > MidletPascal

Ответ
 
Опции темы
Старый 10.08.2014, 11:18   #1
Данияр
AnyKey`щик
 
Регистрация: 10.08.2014
Сообщений: 1
Написано 0 полезных сообщений
(для 0 пользователей)
Помогите перевести с Delphi...

Всем хай !
Народ пожалуйста помогите перевести код с Delphi на MIDLetPascal...
Ни как не получается (((
unit GHash_152;

interface

uses
  SysUtils
Classes;

const
  
field_1347 94736404;
  
field_1338 '5itndg36hj';
  
field_1736 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  
field_1346 1036;
  
field_1348 = -1;
  
field_1345 8167260239830188032;
  
field_2020 : array [0..62of integer = (28302829282926262826262827272930272713,
  
2828172628262433292828282827292728292929302929283028292828,
  
293018252625262728282626282626);

type
  TChars 
= array of char;
  
GHash152 = class
  private
    function 
Generate(Key String) : String;
    function 
method_1171(var0 :TChars; var var1 :array of integervar2 integer 0) : integer;
    function 
method_1961(var0var1 charvar2 integer): boolean;
    
procedure method_688(var0 :integervar1 :TCharsvar2 :int64var4 :array of integervar5 integer);
  public
    class function 
CreateHash(KeyString): String;
    class function 
CreateAdditinalHash(count Word): String;
  
end;

implementation


class function GHash152.CreateAdditinalHash(countWord): String;
const 
str '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
      
var1 62;
var
  
Word;
begin
  Randomize
;
  
result := '';
  for 
:= 1 to count do result := result str[(Random(2147483647mod var1)+1];
end;

class function 
GHash152.CreateHash(KeyString): String;
var
  
ghash GHash152;
begin
  Result 
:= '';
  
ghash := GHash152.Create;
  try
    
Result := ghash.Generate(Key);
  
finally
    ghash
.Free;
  
end;
end;

function 
GHash152.Generate(KeyString): String;
var
  
var2 int64;
  
var14var1var5 integer;
  
var11 int64;
  
var8 int64;
  
var15 : array of integer;
  
var4 TChars;
  
integer;
begin
  var2 
:= 8167260239830188540;


  for 
var14 := 1 to length(key) do
    
Inc(var2, (ord(key[var14]) * field_1345));

  
var14 := length(key)-1;
  
var11 := 1;
  
var8  := var2;

  for 
var1 := var14 downto 0 do
  
begin
    var8  
:= var8 +  var11 * (Pos(field_1338[var1+1], field_1736)) + field_1347;
    
var11 := var11 63;
  
end;

  
Setlength(var15length(field_1338));
  
Setlength(var4length(field_1338));

  for 
:= 1 to length(field_1338) do
    
var4[i-1]:= field_1338[i];

  
var15[0] := Integer((var8 var8 field_1347) * var8);


  for 
:= 1 to length(var15) do
    
var15[i] := Integer(((var8 int64(i) + Int64(var15[1])) * var8));

  
var5 := method_1171(var4var151);
  
method_688(var14+1var4var8var15var5);

  
SetString(ResultPChar(@var4[0]), Length(var4));
end;


function 
GHash152.method_1171(var0TChars; var var1: array of integervar2integer 0): integer;
var
  
var3var4var5var6integer;
begin
  var4 
:= length(var1shl 2;
  for 
var3 := 0 to var4-do
  
begin
    var5 
:= var3 mod length(var1);
    
var6 := abs(var3 var1[var5] + var1[var5]) mod length(var1);
    if 
not method_1961(var0[var5], var0[var6], length(var1)) then
    begin
      Inc
(var1[(var5 var6shr 1]);   
      
Inc(var1[var5], ord(var0[var6])); 
      
Inc(var1[var6], ord(var0[var5])); 
      
Inc(var2);
    
end;
  
end;
  
result := var2;
end;

function 
GHash152.method_1961(var0var1charvar2integer): boolean;
begin
  Result 
:= abs(ord(var0) - ord(var1)) <= var2 field_2020[abs(var2 mod length(field_2020))];
end;

procedure GHash152.method_688(var0integervar1TCharsvar2int64var4: array of integervar5integer);
var
  
var7 integer;
  
var6 String;
  
cinteger;
  
char;
begin
  SetString
(var6PChar(@var1[0]), Length(var1));
  
:= length(var6)-1;
  for 
var7 := 0 to c do
  
begin
    var4
[var7] := var4[var7] + (var5 or Ord(field_1736[Pos(var6[var7+1], field_1736)]));

    
var4[var7] := var4[var7] + var0 var2;

    
Inc(var5var4[var7]);

    
Inc(var4[var7], field_1347);

    
var1[var7] := field_1736[abs(var4[var7mod length(field_1736))+1];
  
end;
end;

end
__________________
Модератор тоже человек как и мы , но он про это не знает !
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 09:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com