Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание идентификатора из string, simple VasyaIvanov --> VIv 
V
    Опции темы
Azzdorf
  Дата 9.7.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



появилась необходимость создания - уникальных идентификаторов по имени и хвамилии
решил для начала попробывать использовать первую букву имени+первую букву хвамилии+первую согласную букву после первой буквы хвамилии

имена и хвамилии хранятся в базе данных, но это не вопрос, знаю как с ни делать стринги по очереди smile ,
а вот ка взять стринг и так его порезаьть???? smile  это вопрос не из простых, по крайнем мере читал про регулярные выражения, но ничего так и не сварганил, а день идет к концу smile 

мо кто с таким работал ил примерно имеет понятие как это реализовать пару строками незамысловатого кода  smile 
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
mr.DUDA
Дата 9.7.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Можно поюзать хэш от строки. 

Код
using System;
using System.Text;
using System.Security.Cryptography;

class Program
{
    static void Main()
    {
        string str = "Иванов Иван Иванович";

        MD5 md5 = new MD5CryptoServiceProvider();
        string result = BitConverter.ToString(md5.ComputeHash(Encoding.ASCII.GetBytes(str)));
        result = result.Replace("-", "");
    }
}



--------------------
user posted image
PM MAIL WWW   Вверх
Azzdorf
  Дата 9.7.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



тоже идея, но чучуть не то - хотелось чего-то в этом роде, плюс там в себя Идентификатор будет включать еще части строк, я уже обдумывал тут варианты с пробелами, но в базе должно быть чотки Имя и Хвамилия слимно
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
sTa1kEr
Дата 9.7.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: нет
Всего: 146



Цитата(Azzdorf @  9.7.2007,  16:11 Найти цитируемый пост)
это вопрос не из простых, по крайнем мере читал про регулярные выражения, но ничего так и не сварганил, а день идет к концу smile 

Код

using System;
using System.Text;
using System.Text.RegularExpressions;
class Program
{
    static void Main()
    {
        string str = "Иванов Иван Иванович";
        string id = null;
        Match match = Regex.Match(str, @"^(?<c2>\w)[уеыаоэяию]*(?<c3>\w)\w+\s+(?<c1>\w)\w+", RegexOptions.IgnoreCase);
        if (match.Success)
        {
            id = match.Groups["c1"].Value + match.Groups["c2"].Value + match.Groups["c3"].Value;
        }
        Console.WriteLine(id);
    }
}

Только какой же это уникальный идентификатор, когда он может запросто повторится?
PM MAIL   Вверх
Azzdorf
  Дата 9.7.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Цитата(sTa1kEr @ 9.7.2007,  20:39)
Только какой же это уникальный идентификатор, когда он может запросто повторится?

ну как сказать повториться, к данной строке будет крепиться строка типа - дата регистриции + группа и ировеньпользователя, но было важно и само реализация такого способа создания идентификаторов, потому как есть идея использовать это и в других местах:

вообщем оргромное спасибки и mr.DUDA и sTa1kEr - а я сделал вот так:

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

public class MyHesh : Form
{
    public static int Main(string[] args)
    {
        Application.Run(new MyHesh());
        return 0;
    }
    public TextBox txt1 = new TextBox();
    public TextBox txt2 = new TextBox();
    public Button btn = new Button();

    public MyHesh()
    {
        this.CenterToScreen();
        this.Size = new Size(400, 150);
        this.BackColor = Color.LightBlue;
        this.FormBorderStyle = FormBorderStyle.FixedSingle;

        txt1.Location = new Point(10, 10);
        txt1.Size = new Size(150, 25);
        txt1.Text = "SexMachine";
        Controls.Add(txt1);

        txt2.Location = new Point(10, 75);
        txt2.Size = new Size(350, 25);
        Controls.Add(txt2);

        btn.Location = new Point(10, 40);
        btn.Size = new Size(100, 25);
        btn.Text = "CONVERT";
        btn.Click += new EventHandler(btn_Click);
        Controls.Add(btn);
    }
    private void btn_Click(object sender, EventArgs e)
    {
        string strIn = txt1.Text;
        string strOut1 = null;
        string strOut2 = null;
        string strOutFin = null;
        int intCut1;
        int intCut2;

        Match match = Regex.Match(strIn, @"^([A-Z]{1})([a-z]*)", RegexOptions.None);
        if (match.Success)
        {
            strOut1 = match.Value; // take.Sex
            strOut2 = strIn.Remove(0, strOut1.Length); // take.Machine
            intCut1 = strOut1.Length;
            intCut2 = strOut2.Length;
            strOutFin = strOut1.Remove(2, intCut1 - 2) + strOut2.Remove(2, intCut2 - 2);
        }
        txt2.Text = strOutFin;
    }
}


 smile  smile  smile  smile  smile 
пару ограничений еще добавить ил юзать Маскет текст бокс и то что нада будет вещичка.... smile 
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0691 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.