Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Хешь функция


Автор: Хоббит 25.6.2006, 18:09
нужно по строке ... в ней что угодно получить строку валидную в качестве имени таблицы в базе данных... то есть из англ букв цифр и.т.д.??? 

Автор: mr.DUDA 25.6.2006, 19:27
Гхммм-м-а-аа...

Берём переменную типа string...

Берём значение, получаемое по string.GetHashCode()...

используем... smile 

Автор: Void 25.6.2006, 20:37
Например, MD5 хэш загнать в Hex
Код

using System;
using System.Text;
using System.Security.Cryptography;

string s = ...;
byte[] hash = MD5.Create().ComputeHash(Encoding.Default.GetBytes(s));
StringBuilder buf = new StringBuilder();
foreach (byte b in hash)
    buf.Append(b.ToString("X"));
string name = buf.ToString();


Это если паранойя smile 

Автор: Хоббит 25.6.2006, 21:27
просто пользователь создает файл.. может его назвать как угодно, а мне надо к нему БД создать... вот.. а имя бд как раз не как угодно 

Автор: mr.DUDA 25.6.2006, 22:08
Цитата(Хоббит @  25.6.2006,  21:27 Найти цитируемый пост)
просто пользователь создает файл.. может его назвать как угодно, а мне надо к нему БД создать... вот.. а имя бд как раз не как угодно 

Вот и используй хеш-код от имени файла smile

Void нормальный пример привёл. Единственное, что после того как получили рез-тат от ComputeHash(), нужно заменить символ "-" на любой алфавитный или удалить его - получится нормальное имя для БД. 

Автор: Void 25.6.2006, 22:13
mr.DUDA, а где там символ «-» может встретиться? smile Я специально не воспользовался Convert.ToBase64String, чтобы избежать проблем с «+», «=» и прочими недопустимым символами. 

Автор: mr.DUDA 25.6.2006, 22:17
Void, ups, возможно я тут сморозил smile, а что действительно только алфанумерик-символы получаются ? smile 

Автор: Хоббит 26.6.2006, 09:21
если барть просто HasCode().ToString() то бывате и минус ... который я устранил .... а во втором варианте минуса вроде и нет 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)