PDA

View Full Version : تولید کد بصورت تصادفی



parvin joon
شنبه 03 مرداد 1388, 13:11 عصر
سلام من یه فرم دارم که میخواهم بعد از اینکه کاربر اون فرم را بر کرد یه کد بیگیری به کاربر بده که این کد برای هر کاربر یکتا باشد خواهش میکنم راهنمایی کنید که چکار کنم و اگه نمونه کدی دارید ممنون میشم اگه در اختیارم بذارید

naeeme
شنبه 03 مرداد 1388, 13:22 عصر
خوب! شما اول باید مشخص کنین که می خواین کد پیگیریتون چه ترکیبی داشته باشه. مثلا طولش چقدر باشه، عددی باشه یا حرفی؟ بزرگ و کوچک بودن حروف درش تاثیر داره یا نه؟
مثلا اگر عددی باشه، خیلی ها از یک مبنا شروع می کنن و یکی یکی کد پیگیری تولید می کنن و به کاربر نشون میدن. همین کار رو هم برای حروف میشه انجام داد.

parvin joon
شنبه 03 مرداد 1388, 13:34 عصر
خوب! شما اول باید مشخص کنین که می خواین کد پیگیریتون چه ترکیبی داشته باشه. مثلا طولش چقدر باشه، عددی باشه یا حرفی؟ بزرگ و کوچک بودن حروف درش تاثیر داره یا نه؟
مثلا اگر عددی باشه، خیلی ها از یک مبنا شروع می کنن و یکی یکی کد پیگیری تولید می کنن و به کاربر نشون میدن. همین کار رو هم برای حروف میشه انجام داد.


من میخوام کد تولید شده بصورت ترکیبی از حروف و اعداد و بصورت تصادفی باشد

hobab-theme
شنبه 03 مرداد 1388, 16:48 عصر
من میخوام کد تولید شده بصورت ترکیبی از حروف و اعداد و بصورت تصادفی باشد
به نظر من از GUID استفاده کنید

Reza_Yarahmadi
شنبه 03 مرداد 1388, 18:16 عصر
این موضوع قبلا بحث شده

نقل قول مستقیم:
تولید رشته های منحصر بفرد

در ساده ترین حالت اینکار معمولا از طریق GUID انجام میشود :


private string GenerateId1()
{
return Guid.NewGuid().ToString();
}

نمونه ای از خروجی:

c1eab2fa-63bb-426f-a2ff-dd87b03c0aa0


یک الگوریتم دیگر :


private string GenerateId2()
{
long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
{
i *= ((int)b + 1);
}
return string.Format("{0:x}", i - DateTime.Now.Ticks);
}

نمونه ای از خروجی:

4f2014c22f7c88ea


یک الگوریتم دیگر :


private long GenerateId3()
{
byte[] buffer = Guid.NewGuid().ToByteArray();
return BitConverter.ToInt64(buffer, 0);
}

نمونه ای از خروجی :

5209165259893891216