06-29-2009, 09:25 PM
|
#1 (permalink)
|
|
Wizard
Join Date: Sep 2007
Posts: 1,299
Thanks: 17
|
Need delphi to PHP translation
I know thisi s the python to PHP forum, but delphi always reminds me of python so here it goes. I found this script at random on the interweb and want to see what it does in PHP. Translation. Now.
Function GenStr(MaxLen,Restrictions:Integer):String;Overloa d;
{Possible Resctiction Values:
1 - All
2 - Just Letters and Numbers
3 - Just Numbers
4 - Just Letters
}
Var St:Byte;
Total:String;
begin
Repeat
Randomize;
St := Random(255);
If Restrictions = 1 then
Total := Total + chr(St);
If Restrictions = 2 then
If (St >= 48) and (St <= 57) or (St >= 65) and (St <= 90) or (St >= 97) and (St <= 122) then
Total := Total + chr(St);
If Restrictions = 3 then
If (St >= 48) and (St <= 57) then
Total := Total + chr(St);
If Restrictions = 4 then
If (St >= 65) and (St <= 90) or (St >= 97) and (St <= 122) then
Total := Total + chr(St);
Until Length(Total) = MaxLen;
Result := Total;
end;
Function GenStr(MaxLen:Integer;Pattern:String):String;Overl oad;
{Possible Resctiction Values:
1 - All
2 - Just Letters and Numbers
3 - Just Numbers
4 - Just Letters
Possble Pattern Parameters:
A or a - All
L - Letter In Capitals
l - Letter not in capitals
C or c - Character ( A,B or a,b (etc.))
N or n - Numbers
R or r - Random Generated Pattern
Ex:
If u wanted a generated string that was Number, number,number,Captiol
letter then any letter, u would use this pattern:
NNNLC or NNNLc
}
Var St:Byte;
Total:String;
Ptrn:String;
P:Byte;
PtrnCount:Integer;
begin
If (Pattern = 'R') or (Pattern = 'r') then
Begin
repeat
Randomize;
P := Random(225);
Case P of
65 or 97:Ptrn := Ptrn + 'A';
78:Ptrn := Ptrn + 'L';
108:Ptrn := Ptrn + 'l';
67 or 99:Ptrn := Ptrn + 'C';
78 or 110:Ptrn := Ptrn + 'N';
end;
until Length(Ptrn) = (MaxLen div 2) + 1;
Pattern := Ptrn;
end;
PtrnCount := 0;
Repeat
Randomize;
Inc(PtrnCount);
If (Pattern[PtrnCount] = 'A') or (Pattern[PtrnCount] = 'a') then
Total := Total + chr(Random(255));
If (Pattern[PtrnCount] = 'L') then
Begin
Repeat
St := Random(255);
Until (St >= 65) and (St <= 90);
Total := Total + chr(St);
end;
If (Pattern[PtrnCount] = 'l') then
Begin
Repeat
St := Random(255);
Until (St >= 97) and (St <= 122);
Total := Total + chr(St);
end;
If (Pattern[PtrnCount] = 'C') or (Pattern[PtrnCount] = 'c') then
begin
Repeat
St := Random(255);
Until (St >= 65) and (St <= 90) or (St >= 97) and (St <= 122);
Total := Total + chr(St);
end;
If (Pattern[PtrnCount] = 'N') or (Pattern[PtrnCount] = 'n') then
begin
Repeat
St := Random(255);
Until (St >= 48) and (St <= 57);
Total := Total + chr(St);
end;
If PtrnCount = Length(Pattern) then
PtrnCount := 0;
Until Length(Total) = MaxLen;
Result := Total;
end;
Wildhoney Green power
infraction was added to this post,
Village Idiot = lost 10 hp..
Behave! :)
Last edited by codefreek : 06-30-2009 at 02:10 AM.
|
|
|
|