如何自动产生一个10位长的唯一编码?(50分)

  • 主题发起人 主题发起人 nxyzg
  • 开始时间 开始时间
N

nxyzg

Unregistered / Unconfirmed
GUEST, unregistred user!
如何自动产生一个10位长的唯一编码?在下初学请说详细一些。
 
在Delphi的代码编辑器中按下Ctrl+Shift+G
 
procedure TForm1.Button1Click(Sender: TObject);
var
i,count: Integer;
begin
count := GetTickCount();
Randomize;
i := random(9999999999);
while (i < 1000000000) do
i := random(9999999999);

Button1.Caption := '10位数:'+ IntToStr(i);
Caption := IntToStr(length(IntToStr(i)));
Caption := Caption + '位; 用时' + IntToStr(GetTickCount - count) + '秒';

end;
 
我的意思是要将此编码做为序号,在程序中根据需要反复的生成且于以前生成的不重复。
 
用时间做唯一码也不错的,我用过IP+time产生唯一码,较果不错
 
to xf_wangyi 能不能给出具体方法。
 
to rrr
此方法能保证永不重复吗。不过我以采用此法,回答我一下,我准备给分了。
 
to nxyzg:
将用rrr的方法生成的号码保存起来,新生成的号码和保存的号码比较如果重复则不要重新生成一个就行了。
to xf-wangyi:
正常情况下用IP+Date+Time是个不错的选择,可是由于种种原因我们会经常更改系统时间和IP,所以不能
保证得到的是唯一值,当然重复的情况是极少的。
 
wind2000:
IP+DATE+TIME+RADOM(X)应该是可以的,我以前用过,几乎不会重复
绝对是不太可能的吧,GUID号称不重复,可谁又知道呢?MAC地质不是好多重复吗?
 
见者有分,我分有限,没办法在家少分点吧。采用rrr的方法。十分感谢。
 
后退
顶部