Frank,
  Try this using the new DLCALL functions in RBASE

{These two must be declared only ONCE in an RBASE SESSION}
  STDCALL function 'GetTickCount' () : integer
  STDCALL void 'Sleep' (integer)
{
  "We get the last two numbers from the TickCount, test if they are between
   Ascii 65 and 90, if success, then add to String vPASS.  If String is
   vPassLength, then write to file.  It takes a couple of minutes to
   generate 80 passwords. In my test, there were no Dupes.  I used RBASE
   RANDOM function to make the Sleep API vary so the GetTickCount would be
   more random as well.
}


IF (chkvar('vsleep')) = 0 THEN
  SET VAR vsleep INTEGER = 100
ENDIF

Set var vMaxWordsToGen integer = 80
Set var vPassLength integer = 8
SET VAR vret INTEGER = 0
SET VAR i INTEGER = 0
SET VAR vpass TEXT = NULL
SET VAR vgettick INTEGER = NULL
SET VAR vtext TEXT = ''
SET VAR vascii INTEGER = 0
OUTPUT holdrand.csv


WHILE i < .vMaxWordsToGen THEN
  SET VAR vsleep = (RANDOM(50))
  SET VAR vret = (dlcall('Kernel32','Sleep', vsleep))
  SET VAR vgettick = (dlcall('Kernel32','GetTickCount'))
  SET VAR vtext = (CTXT(.vgettick))
  SET VAR vascii = (INT((SGET(.vtext ,2, (SLEN(.vtext)) - 1))))
  IF vascii BETWEEN 65 AND 90 THEN
    SET VAR vpass = (.vpass + (CHAR(.vascii)))
  ENDIF
  IF (SLEN(.vpass)) = .vPassLength THEN
    WRITE .vpass
    SET VAR vpass = ''
    SET VAR i = (.i + 1)
  ENDIF
ENDWHILE
OUTPUT SCREEN
RETURN

----- Original Message ----- 
From: "Frank Taylor" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Friday, April 04, 2008 3:59 PM
Subject: [RBASE-L] - Random has order ?


I created a password generator the other day using the Random command as such

      SET VAR gen1 = (RANDOM(33))
      IF gen1 BETWEEN 1 AND 24 THEN
            SET VAR gen2 = (RANDOM(2))
      ENDIF

The code loops 8 times and uses the values of gen1 and gen2 with a case 
statement to make an 8 character password. The first random generated gives me 
either a letter or number and the second random generator gives me upper or 
lower case if it is to be a letter (I do not use L,O or Zero in case you are 
wondering)

I used the code to generate 7 passwords yesterday, then today I used the code 
to generate 8 more passwords.. When I went back to look at them, the first 7 
passwords I created today, were the exact same and in the same order as the 
Seven I created yesterday.  I went out of RBase and came back in and sure 
enough it started over..  So can I assume that Random is not really random but 
has order ?  Anyone have a suggestion as a work around, maybe using a system 
variable in the mix ?

Using RB7.6  ver 7.6.3.30321


n  Frank

Frank Taylor - Information Systems Administrator
F.J. O'Hara & Sons, Inc - Araho Transfer Inc.
Boston, MA - Rockland, ME - Miami, FL
Direct Dial - 617-790-3093
email: [EMAIL PROTECTED]


Reply via email to