生成一个永远不重复的字符串(100分)

  • 主题发起人 主题发起人 Bonny
  • 开始时间 开始时间
B

Bonny

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要生成一个永不重复的字符串。
现在我使用的办法是年月日时分秒毫秒加在一起,组成一个字符串,一般不会重复。
但是如果把计算机系统时间修改回去,就有可能重复,而且在不同的计算机相同的时间
也有可能重复。
请问有没有什么办法给我解决一下,我在线等待。
我听说有一个guid是全球永不重复的,但是不知道怎么生成,能给我说说么?
 
你是在做软件使用权限验证的程序吧,
我也想听听,
整整那些不按时付款的公司。。。
也为自己的权益做点保障
 
function GetGUID:string;
//取得GUID
//返回不带花括号的GUID
var
tmpGUID:TGUID;
begin
CreateGUID(tmpGUID);
Result:=MidStr(GUIDToString(tmpGUID),2,36);
end;
 
SQL server 中有 newid() 可生成
delphi 中在编辑时按 ctrl+Shift+G 可得一guid码
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, activex, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
guid: TGUID;
begin
for i := 1 to 20 do
begin
CoCreateGuid(guid);
memo1.Lines.Add(GUIDToString(guid))
end;
end;

end.

 
好像太长了,我的数据库用来保存这个字段的大小只有13位

有没有其他的办法
 
SQL server 中有 newid() 可生成
??????????????????????
 
后退
顶部