php function to delphi

Hi experts.

I need to convert a JavaScript code to delphi:

controle1 = (Math.random() * 65465 | 0).toString(16)
controle2 = (2765476 * Math.random() | 0).toString(36);

Someone could help me ?

Thanks
alpiresAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

gskoczylasSenior Software DeveloperCommented:
Something like this (not tested this code):
unit Unit1;

interface

implementation

type
  TBaseRange = 2..36;

function  ToString({const} nValue:  Integer;
                   const   nBase:  TBaseRange)
                   : string;

  function  ToChar(const   nDigit:  Integer)
                   : Char;
  begin
    if  nDigit < 10  then
      Result := Chr(Ord('0') + nDigit)
    else
      Result := Chr(Ord('A') + nDigit - 10)
  end { ToChar };

begin  { ToString }
  Assert(nValue >= 0);
  Result := '';
  repeat
    Result := ToChar(nValue mod nBase) + Result;
    nValue := nValue div nBase
  until  nValue = 0
end { ToString };


procedure  Convert;

var
  controle1:  string;
  controle2:  string;

begin  { Convert }
  // controle1 = (Math.random() * 65465 | 0).toString(16)
  controle1 := ToString(Random(65465) {or 0}, 16);

  // controle2 = (2765476 * Math.random() | 0).toString(36);
  controle2 := ToString(Random(2765476) { or 0}, 36);
end { Convert };

initialization
  Randomize();

end.

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
rinfoCommented:
Function BaseChange(Num, NewBase : Word) : String;
Const
  BaseChars : Array [0..36] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Var
  St : String;
begin
  St := '';
  Repeat
    St  := BaseChars[Num MOD NewBase] + St;
    Num := Num Div NewBase;
  Until Num = 0;
  BaseChange := St;
end;

Int var1 = BaseChange((1+Random(65465),16);
if var1 then Control1:= IntTostr(var1) else control1:= '0';
Int var1 = BaseChange(floor((2765476*Random)),36);
if var1 then control2 := IntTostr(var1) else control2 = '0';
rinfoCommented:
This code is tested
Function TForm1.BaseChange(Num, NewBase : Word) : String;
Const
  BaseChars : Array [0..36] of Char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Var
  St : String;
begin
  St := '';
  Repeat
    St  := BaseChars[Num MOD NewBase] + St;
    Num := Num Div NewBase;
  Until Num = 0;
  BaseChange := St;
end;


procedure TForm1.Button1Click(Sender: TObject);
var var1:string;Control1:String;
    num:integer;
begin

 var1:= BaseChange((1+Random(65465)),16);
 if length(var1)>0 then Control1:= var1 else control1:= '0';
 showmessage(control1);
 num:= floor(2765476*Random);
 var1 := BaseChange(num,36);
 if length(var1)>0 then control1 := var1 else control1:= '0';
 showMessage(Control1);
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.