Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Generate Monotonic ULIDsSee more ULID/UUID ExamplesGenerate 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.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CkDateTime, StringBuilder; ... procedure TForm1.Button1Click(Sender: TObject); var seedDt: HCkDateTime; utc: Boolean; ulid: PWideChar; sbUlid: HCkStringBuilder; i: Integer; begin seedDt := CkDateTime_Create(); // You can set the seed time to any desired value. // In this example, the seed time is set to the current system date/time. CkDateTime_SetFromCurrentSystemTime(seedDt); // Generate the 1st ULID in the series. // (i.e. the current UTC UNIX-time) utc := True; ulid := CkDateTime__ulidGenerate(seedDt,utc); Memo1.Lines.Add(ulid); // Store the ULID in a Chilkat StringBuilder to generate the series. sbUlid := CkStringBuilder_Create(); CkStringBuilder_Append(sbUlid,ulid); i := 0; while i < 50 do begin CkDateTime_UlidIncrement(seedDt,sbUlid); Memo1.Lines.Add(CkStringBuilder__getAsString(sbUlid)); i := i + 1; end; // 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 CkDateTime_Dispose(seedDt); CkStringBuilder_Dispose(sbUlid); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.