Solved

php function to delphi

Posted on 2012-03-23
3
347 Views
Last Modified: 2012-03-24
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
0
Comment
Question by:alpires
  • 2
3 Comments
 
LVL 3

Accepted Solution

by:
gskoczylas earned 500 total points
Comment Utility
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

0
 
LVL 9

Expert Comment

by:rinfo
Comment Utility
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';
0
 
LVL 9

Expert Comment

by:rinfo
Comment Utility
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);
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

I've been trying to accomplish this for a while and it just struck me yesterday how to accomplish this task. I have done searches all over the internet looking for ways to email pages from my applications and finally I have done it!!! Every single s…
Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now