如何快速批量生成不重复的随机字符串呀?
解决方案 »
- 40分求dotmsn代码
- C#窗体跳转问题 在线等` 急急急
- c#对接收邮件中qp的编码如何解码?
- 如何使用management上传、下载文件?在局域网中如何实现上传、下载文件?在线等待....
- HttpListener异步问题
- 我是刚学的大一生 这道我自己编的杨辉三角问题 但不知道错那里 请高手帮忙 ,谢谢
- 我按照大家给的方法做不规则窗体时,怎么没有效果!!!
- 完了完了我刚安装 Windos2003Server,再安装VS.net1.1 现在不能新建也不能打开web应用程序和web服务
- ★CSC★重新装了 .NET 框架,结果在命令提示符下“CSC” 这个编译命令却不能用了,这是怎么回事啊!
- C#数据库的问题
- 求获取另外一个正运行程序中控件的内容的代码
- GRIDVIEW的模板里控件的事件问题
// * 函数名称: Set_Char
// * 功 能: 获得一个指定长度,全为字母的字符串
// * 入口参数: length 长度
// * isFixed 是否为固定长度, true 为固定 false 不固定
// *
// * 返 回 值: 指定范围内的字符串
// * 作 者: TONI
// * 日 期: 2006.07.17
// * 模块标识:
//************************************************************************************
CString CRandData::Set_Char(int length, BOOL isFixed)
{
if(length<0)
{
AfxMessageBox("字符串长度不能小于0!");
return "";
}
char a[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
short num=strlen(a);
CString str="";
//当不固定长度时
if(!isFixed)
{
//长度为设定长度范围内的任一随机值
length = rand()%length +1;
}
for(int i=0;i<length;i++)
{
str += a[rand()%num];
}
return str;
}
//************************************************************************************
// * 函数名称: Set_Num
// * 功 能: 获得一个指定长度,全为数字的字符串
// * 入口参数: length 长度
// * isFixed 是否为固定长度, true 为固定 false 不固定
// *
// * 返 回 值: 指定范围内的字符串
// * 作 者: TONI
// * 日 期: 2006.07.17
// * 模块标识:
//************************************************************************************
CString CRandData::Set_Num(int length, BOOL isFixed)
{
if(length<0)
{
AfxMessageBox("长度不能小于0!");
return "";
}
char a[]="0123456789";
int num=strlen(a);
CString str="";
if(!isFixed)
{
length = rand()%length +1;
}
for (int i=0;i<length;i++)
{
str +=a[rand()%num];
}
return str;
}
//************************************************************************************
// * 函数名称: Set_Bigchar
// * 功 能: 获得一个指定长度,全为大写字母的字符串
// * 入口参数: length 长度
// * isFixed 是否为固定长度, true 为固定 false 不固定
// *
// * 返 回 值: 指定范围内的字符串
// * 作 者: TONI
// * 日 期: 2006.07.17
// * 模块标识:
//************************************************************************************
CString CRandData::Set_Bigchar(int length,BOOL isFixed)
{
if(length<0)
{
AfxMessageBox("长度不能小于0!");
return "";
}
char a[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int num = strlen(a);
CString str="";
if(!isFixed)
{
length = rand()%length +1;
}
for(int i=0;i<length;i++)
{
str += a[rand()%num];
}
return str;
}//************************************************************************************
// * 函数名称: Set_Smallchar
// * 功 能: 获得一个指定长度,全为小写字母的字符串
// * 入口参数: length 长度
// * isFixed 是否为固定长度, true 为固定 false 不固定
// *
// * 返 回 值: 指定范围内的字符串
// * 作 者: TONI
// * 日 期: 2006.07.17
// * 模块标识:
//************************************************************************************
CString CRandData::Set_Smallchar(int length, BOOL isFixed)
{
if(length<0)
{
AfxMessageBox("长度不能小于0!");
return "";
}
char a[]="abcdefghijklmnopqrstuvwxyz";
int num = strlen(a);
CString str = "";
if(!isFixed)
{
length = rand()%length+1;
}
for(int i=0;i<length;i++)
{
str += a[rand()%num];
}
return str;
}//************************************************************************************
// * 函数名称: Set_String
// * 功 能: 获得一个指定长度,混合字母和数字的字符串
// * 入口参数: length 长度
// * isFixed 是否为固定长度, true 为固定 false 不固定
// *
// * 返 回 值: 指定范围内的字符串
// * 作 者: TONI
// * 日 期: 2006.07.17
// * 模块标识:
//************************************************************************************
CString CRandData::Set_String(int length, BOOL isFixed)
{
if(length<0)
{
AfxMessageBox("长度不能小于0!");
return "";
}
char a[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int num = strlen(a);
CString str = "";
if(!isFixed)
{
length = rand()%length+1;
}
for(int i=0;i<length;i++)
{
str += a[rand()%num];
}
return str;
}C++的方法。
引用的头文件~~~
不重复啊 那要做个记录了如果是小概率重复 c#用random就好了
每次random取一个整数,范围在list位数之间,取一个值出来,然后去掉list里的值。
每次缩小一次random范围就成了。
{
Random r=new Random();
ArrayList list=new ArrayList();
for(int i=1;i<=1000;i++)
{
list.Add(i);
}
StringBuilder sb=new StringBuilder();
for(int i=999;i>=0;i--)
{
int j=r.Next(0,i);
sb.Append(list[j]+"-");
list.RemoveAt(j);
}
this.textBox1.Text=sb.ToString();
}
string name = key.ToString("B");