Sample code for 30+ languages & platforms
B4X

Generate Monotonic ULIDs

See more ULID/UUID Examples

Generate a sequence of monotonic ULIDs all using the same seed time. This code sample generates a series of ULIDs with continuously increasing values.

Important: Chilkat's ULID functionality was introduced in v9.5.0.94.

Chilkat B4X Downloads

B4X
Dim seedDt As ChilkatDateTime
seedDt.Initialize

'  You can set the seed time to any desired value.
'  In this example, the seed time is set to the current system date/time.
seedDt.SetFromCurrentSystemTime

'  Generate the 1st ULID in the series.
'  (i.e. the current UTC UNIX-time)
Dim utc As Boolean = True
Dim ulid As String = seedDt.UlidGenerate(utc)
Log(ulid)

'  Store the ULID in a Chilkat StringBuilder to generate the series.
Dim sbUlid As ChilkatStringBuilder
sbUlid.Initialize
sbUlid.Append(ulid)

Dim i As Int = 0
Do While i < 50
    seedDt.UlidIncrement(sbUlid)
    Log(sbUlid.GetAsString)
    i = i + 1
Loop

'  Sample output:

'  01GRGH30H8DMQ4F9A0XCTZHPGM
'  01GRGH30H8DMQ4F9A0XCTZHPGN
'  01GRGH30H8DMQ4F9A0XCTZHPGP
'  01GRGH30H8DMQ4F9A0XCTZHPGQ
'  01GRGH30H8DMQ4F9A0XCTZHPGR
'  01GRGH30H8DMQ4F9A0XCTZHPGS
'  01GRGH30H8DMQ4F9A0XCTZHPGT
'  01GRGH30H8DMQ4F9A0XCTZHPGV
'  01GRGH30H8DMQ4F9A0XCTZHPGW
'  01GRGH30H8DMQ4F9A0XCTZHPGX
'  01GRGH30H8DMQ4F9A0XCTZHPGY
'  01GRGH30H8DMQ4F9A0XCTZHPGZ
'  01GRGH30H8DMQ4F9A0XCTZHPH0
'  01GRGH30H8DMQ4F9A0XCTZHPH1
'  01GRGH30H8DMQ4F9A0XCTZHPH2
'  01GRGH30H8DMQ4F9A0XCTZHPH3
'  01GRGH30H8DMQ4F9A0XCTZHPH4
'  01GRGH30H8DMQ4F9A0XCTZHPH5
'  01GRGH30H8DMQ4F9A0XCTZHPH6
'  01GRGH30H8DMQ4F9A0XCTZHPH7
'  01GRGH30H8DMQ4F9A0XCTZHPH8
'  01GRGH30H8DMQ4F9A0XCTZHPH9
'  01GRGH30H8DMQ4F9A0XCTZHPHA
'  01GRGH30H8DMQ4F9A0XCTZHPHB
'  01GRGH30H8DMQ4F9A0XCTZHPHC
'  01GRGH30H8DMQ4F9A0XCTZHPHD
'  01GRGH30H8DMQ4F9A0XCTZHPHE
'  01GRGH30H8DMQ4F9A0XCTZHPHF
'  01GRGH30H8DMQ4F9A0XCTZHPHG
'  01GRGH30H8DMQ4F9A0XCTZHPHH
'  01GRGH30H8DMQ4F9A0XCTZHPHJ
'  01GRGH30H8DMQ4F9A0XCTZHPHK
'  01GRGH30H8DMQ4F9A0XCTZHPHM
'  01GRGH30H8DMQ4F9A0XCTZHPHN
'  01GRGH30H8DMQ4F9A0XCTZHPHP
'  01GRGH30H8DMQ4F9A0XCTZHPHQ
'  01GRGH30H8DMQ4F9A0XCTZHPHR
'  01GRGH30H8DMQ4F9A0XCTZHPHS
'  01GRGH30H8DMQ4F9A0XCTZHPHT
'  01GRGH30H8DMQ4F9A0XCTZHPHV
'  01GRGH30H8DMQ4F9A0XCTZHPHW
'  01GRGH30H8DMQ4F9A0XCTZHPHX
'  01GRGH30H8DMQ4F9A0XCTZHPHY
'  01GRGH30H8DMQ4F9A0XCTZHPHZ
'  01GRGH30H8DMQ4F9A0XCTZHPJ0
'  01GRGH30H8DMQ4F9A0XCTZHPJ1
'  01GRGH30H8DMQ4F9A0XCTZHPJ2
'  01GRGH30H8DMQ4F9A0XCTZHPJ3
'  01GRGH30H8DMQ4F9A0XCTZHPJ4
'  01GRGH30H8DMQ4F9A0XCTZHPJ5
'  01GRGH30H8DMQ4F9A0XCTZHPJ6