(PHP like) UniqueID

Share your advanced PureBasic knowledge/code with the community.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

(PHP like) UniqueID

Post by Hroudtwolf »

Code updated For 5.20+

Hello,


This is the PureBasic variant of UniqueID. (But a little bit better :D )
It produce unique, unambiguous IDs for some uses.
In example... working with databases, spritelists, etc...


The function:

Code: Select all

Procedure.s CreateUniqueID(MaxLetters.l)
    If MaxLetters.l<=32 and MaxLetters.l>0
      PreID.s=Str(GetTickCount_())+Str(Random(99999))
      MD5String.s=MD5Fingerprint(@PreID.s, Len(PreID.s))
      UniqueID.s=Mid(MD5String.s,Random(32)-MaxLetters.l,MaxLetters.l)
      ProcedureReturn UniqueID.s
      Else
      ProcedureReturn "0"
   EndIf 
EndProcedure
Example:

Code: Select all

Debug CreateUniqueID(8)
Debug CreateUniqueID(10)
Debug CreateUniqueID(12)
Trond
Always Here
Always Here
Posts: 7446
Joined: Mon Sep 22, 2003 6:45 pm
Location: Norway

Post by Trond »

You don't ensure it's unique, you simply output a random ID.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

The original php command is also based on random values.
Through the variety of possibilities, you can maintain its a unique output.
Fred
Administrator
Administrator
Posts: 18253
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Post by Fred »

why not simply using an incrementing counter ?
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

[edit]
There was an database error in forum
[/edit]
Last edited by Hroudtwolf on Fri Nov 04, 2005 8:54 pm, edited 1 time in total.
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

'Cause my method makes UniqueID useful for more things.
You can use it as key for encrytion, as ID-Name for files etc....
The PHP command "UniqueID" does output similar strings.
That isn't my invention.
User avatar
Rings
Moderator
Moderator
Posts: 1435
Joined: Sat Apr 26, 2003 1:11 am

Post by Rings »

Fred wrote:why not simply using an incrementing counter ?
the incremental counter is for posting only ;)
SPAMINATOR NR.1
User avatar
Hroudtwolf
Addict
Addict
Posts: 803
Joined: Sat Feb 12, 2005 3:35 am
Location: Germany(Hessen)
Contact:

Post by Hroudtwolf »

the incremental counter is for posting only
Best example ;-)
Post Reply