Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/131: Рейтинг темы: голосов - 131, средняя оценка - 4.85
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
1

Получить некое уникальное значение (желательно чисто цифровое)

01.03.2011, 11:05. Просмотров 23715. Ответов 13
Метки нет (Все метки)


Камрады, моё почтенде!

Встала задача получить некое уникальное значение (будет использоваться как название для папки).
@Unique не катит, т.к. там участвует часть имени пользователя, а соответсвенно могут вылезти кириллица, всякие умляуты и т.д.
Т.е. очень желательно получить уникальное цифровое значение.

Какие значения были до этого, я не знаю, т.е. принцип "предидущее значение + 1" не годиться.

В течении секунды может быть сгенерировано n уникальных значений, т.е. текущее время тоже пролетает.

В идеале, цикл выполняющийся в пределах секунды

LotusScript
1
2
3
For i = 1 To 100
Print UniqueValue()
Next
должен выпечатаь 100 значений, но, по идее, сгодиться и если число сгенерированных значений будет >80 думаю мне этого хватит.

Пока что смотрю в сторону

LotusScript
1
2
Randomize
UniqueValue = Cstr(Rnd()) + Cstr(Getthreadinfo(6))  LSI_THREAD_TICKS
Но такая конструкция выполненная в цикле менее секунды 100 выдаёт только 11 уникальных значений.
Куда бы добавить соли?
Спасибо!

Можно, конечно ввести глобальный счётчик, но пока не хотелось бы.
Ани айдиас аппришиэйтед!

Добавлено: Ща попробовал с глобальным счётчиком, вообще работает.
Т.е. объявил ненавистную мной глобальную переменную и использую её как часть уникального значения.
Т.е. в пределах одного запуска цикла всё получается, как надо.

Добавлено: Уточню, что мне вообще и надо в пределах одного запуска.
Вообщем, похоже, проблема решена с помощью приватной глобальной переменной.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2011, 11:05
Ответы с готовыми решениями:

Получить уникальное значение из выпадающего списка
Есть 2 выпадающих списка. Выбираем в первом значение, во втором подставляется другое значение. При...

Получить минимальную сумму из уникальных(уникальное значение на строчку и столбец) значений в таблице
Добрый день, не могу описать формулу для поиска суммы из уникальный значений на строчку и столбец....

Получить уникальное кол-во строк
Доброго времени суток. Прошу вашей помощи в написании макроса. Есть таблица, она прикреплена как...

Получить уникальное число, которое не повторяется
Здравствуйте ! Есть задача : Ввести в два столбца набор любых чисел (целых) -- Выщитать из них...

__________________
Помогаю в написании студенческих работ здесь.
13
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
01.03.2011, 11:09 2
почему бы в Уникью просто не заменять кирилицу ?
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
01.03.2011, 11:11 3
Morpheus
В России - кириллица
В Латвии - латышица
В Замбии - замбица
Не хочу заморачиваться.

Но вообще, если потеоретизировать насчёт сферического коня в вакууме, то возможно ли не используя глобальную переменную всё время генерировать уникальные значения?
Что-то мне подсказывает, что это не совсем тривиальная задача.
0
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
01.03.2011, 11:15 4
нууууууууу... может просто плодить документы и брать их нотеИд

Добавлено: и возможно j2ls + ( JAVA-рандом ) будет быстрее?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.03.2011, 11:19 5
UNID?
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
01.03.2011, 11:22 6
Цитата Сообщение от Morpheus
и возможно j2ls + ( JAVA-рандом ) будет быстрее?
Ну, чем просто прибавлять единичку к глоб. переменной - вряд ли.
Я просто не понимаю, почему это я думал, что мне надо уникльное значение вне времени и пространства.
На самом деле, мне надо было уникальное значение в пределах запуска, что решается, как 2 пальца об асфальт.
Вообщем, протормозил я

Добавлено:


Цитата Сообщение от Medevic
UNID?
Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.


Кстати, таким способом у меня сделано получаение серверного времени:

LotusScript
1
2
3
Dim newDoc as NotesDocument
Set newDoc = db.CreateDocument
ServerTime = NewDoc.Created
Под шумок спрошу, ни у кого нет лучше способа без пустышки и без Evaluate(Formula)?
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
01.03.2011, 11:27 7
Цитата Сообщение от Omh
Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.
Создаешь папку, смотришь её UNID и меняешь имя на этот UNID.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
01.03.2011, 11:41 8
переводи дату+время в число
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
01.03.2011, 11:56 9
Цитата Сообщение от NickProstoNick
переводи дату+время в число


Код
CDat(Now)
?
А что вернёт в пределах секунды?
Я не злорадствую, а просто спрашиваю, пока нет времени проверить.
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
01.03.2011, 12:29 10
http:///ipb.html?s=&sh...st&p=156718
0
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
01.03.2011, 20:26 11
Цитата Сообщение от Omh
Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.
необязательно документы создавать, можно @password использовать
0
0 / 0 / 0
Регистрация: 04.08.2008
Сообщений: 408
02.03.2011, 13:47 12
Генерить любой уникальный текст, хоть и тот же @Unique, и переделать в какой MD5 хеш. Да и nvy хорошенький линк подкинул.
0
0 / 0 / 0
Регистрация: 30.07.2010
Сообщений: 85
03.03.2011, 08:08 13
Цитата Сообщение от Kee_Keekkenen
необязательно документы создавать, можно @password использовать
либо


Код
Type KFM_PASSWORD
xType As Byte
hPword As String * 48
End Type

Declare Sub SECKFMCreatePassword Lib "nnotes.dll" (Byval pString As String, x As KFM_PASSWORD)
Это если без формул и Evaluate()
0
0 / 0 / 0
Регистрация: 19.04.2009
Сообщений: 2,219
03.03.2011, 08:29 14
Цитата Сообщение от nayke
Это если без формул и Evaluate()
А так не проще?
hashedPassword$ = notesSession.HashPassword( password$ )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2011, 08:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Уникальное значение контрола
Ребят, есть ли у контролов какое то уникальное значение в приложении (а не в форме)? И как его...

Уникальное значение столбца
как сделать уникальное значения столбца TittleBeer (не кодом)?

Уникальное значение логина
Есть форма регистрации, которая добавляет в БД пользователей. Столкнулся с проблемой что при...

Цифровое значение буков
Где можно посмотреть цифровое значение буков??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.