Текущий архив: 2007.09.02;
Скачать: CL | DM;
Вниз
Уникальный код Найти похожие ветки
← →
fisherman © (2007-08-09 14:17) [0]Всем привет!
Подскажите, есть у Делфи функция формирующая уникальный код
← →
Сергей М. © (2007-08-09 14:21) [1]CreateGUID устроит ?
← →
Rouse_ © (2007-08-09 14:21) [2]CreateGUID()
← →
Jeer © (2007-08-09 14:25) [3]
> формирующая уникальный код
твоего нового уникального приложения ?
← →
fisherman © (2007-08-09 14:26) [4]спасибо, сейчас попробую
← →
tesseract © (2007-08-09 14:34) [5]for i:=1 to 99 do
begin
unicode:=unicode+strtoint(random(99));
end;
← →
fisherman © (2007-08-09 14:47) [6]
> CreateGUID()
не совсем то, мне надо заносить в DBF-ку онформацию и каждой записи присваивать уникальный код.
База данных используется другой программой написанной на FoxPro, и там используется функция sys(3) возвращающая уникальный 8-ми знаковый числовой код.
Вот что-то наподобие этого надо
← →
Сергей М. © (2007-08-09 14:56) [7]
> мне надо заносить в DBF-ку онформацию и каждой записи присваивать
> уникальный код
Чем же не устроил уникальный GUID ?
И слышал ли ты хоть что-либо о генераторах автоинкрементных целочисленных значений ?
И какого лешего ты постишь вопрос здесь, а не в форуме по базам данных ?
← →
l_v (2007-08-09 15:01) [8]Shift+Ctrl+G... :)
правда стринг, и правда он тебе совсем неподходит... :)
← →
tesseract © (2007-08-09 15:38) [9]
> не совсем то, мне надо заносить в DBF-ку онформацию и каждой
> записи присваивать уникальный код.
Автоинкрементые поля уходят в Ж ?
← →
Leonid Troyanovsky © (2007-08-09 15:45) [10]
> fisherman © (09.08.07 14:47) [6]
> FoxPro, и там используется функция sys(3) возвращающая уникальный
> 8-ми знаковый числовой код.
> Вот что-то наподобие этого надо
Value := Format("%8.8d", [Random(100000000)]);
--
Regards, LVT.
← →
{RASkov} © (2007-08-09 16:22) [11]Как-то не больно давно я тоже такой "ерундой" страдал :) Вот:
http://delphimaster.net/view/2-1179178018/
Можно и под "числовой" переделать....
← →
l_v (2007-08-09 16:25) [12]
> {RASkov} © (09.08.07 16:22) [11]
Произошла ошибка:
Не найдена ветка № 1179178018, возможно она была удалена или перенесена в другой форум.
Назад
(c) Мастера DELPHI
← →
{RASkov} © (2007-08-09 16:26) [13]Последний пост из той ветки:
[9] {RASkov} © (15.05.07 18:21)
В общем остановился на этом (может кому и пригодится):
function GetDID(const F12Ch: Boolean=True): String;
const Ch: array [0..25] of Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
MAXCHAR = 3-1;
var ArrPosCh: array [0..MAXCHAR] of Byte;
SetPosCh: set of Byte;
N, K, J, Min, TmpI: Byte;
begin
for N:= 0 to MAXCHAR do ArrPosCh[N]:=0;
N:=0; SetPosCh:=[];
Result:=IntToStr(Round((Now-RoundTo(Now, 2))*10000000));
Randomize; J:=Length(Result)-(2-ORD(F12Ch));
while N<=MAXCHAR do begin
K:=2+Random(J);
if not ((K in SetPosCh) or (Pred(K) in SetPosCh) or (Succ(K) in SetPosCh)) then begin
Include(SetPosCh, K);
ArrPosCh[N]:=K;
INC(N);
end;
end;
if F12Ch then begin
for N:=0 to MAXCHAR do begin
Min:=N;
for J:=N+1 to MAXCHAR do
if ArrPosCh[J] < ArrPosCh[Min] then Min:=J;
TmpI:=ArrPosCh[N];
ArrPosCh[N]:=ArrPosCh[Min];
ArrPosCh[Min]:=TmpI;
end;
for N:= 0 to MAXCHAR do Insert(Ch[Random(26)], Result, ArrPosCh[N]+N);
end else for N:= 0 to MAXCHAR do Result[ArrPosCh[N]]:=Ch[Random(26)];
end;
Я подозреваю, что совпадений "не будет никогда". ) С условием, что генериться будет минимум один раз на одном компе. Естественно, если в базе уже будет такой идентификатор, то процедура повториться. Я вот думаю, тот ли участок взял из числа (дата+время) или лишнего от начала отсек....
Кстати, может и не надо символы вставлять, тогда и получится число(как я и хотел)?
> [7] Gydvin © (15.05.07 07:22)
Не понял вопроса... в чем смысл функции? - ты спрашиваешь... А неужели не понятно, да и расписывал про все это зря что ли....
> [8] Kolan © (15.05.07 07:46)
GUID и обреж
Тоже вариант....
Ладно... всем спасибо за участие ;)
← →
DVM © (2007-08-09 16:28) [14]GUID статистически уникален, но абсолютная уникальность не гарантирована.
← →
antonn © (2007-08-09 16:32) [15]
> И какого лешего ты постишь вопрос здесь, а не в форуме по
> базам данных ?
затоптал%)
Страницы: 1 вся ветка
Текущий архив: 2007.09.02;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.041 c