äÁÕÖ ÅÓÌÉ Ñ ÐÏÐÅÒÓÑ ÞÔÏ ÔÏ ÞÉÔÁÔØ ÜÔÏ ÎÅ Ë ÄÏÂÒÕ, × ÌÅÓÕ ËÔÏ ÔÏ ÚÄÏÈÎÅÔ É
ÎÁÞÎÕÔÓÑ ËÁÔÁËÌÉÚÍÙ. (äÁÖ ÚÅÍÌÅÔÒÑÓÅÎÉÅ ÂÙÌÏ, Ë ÞÅÍÕ ÂÙ ÜÔÏ).
ôÕÔ ÎÁÄÏÓÕÇÅ ÐÏÄÕÍÁÌ É ÞÔÏ Ö Ñ ÏÔ ÖÉÚÎÉ ÏÔÓÔÁÀ ÇÅÎÅÒÁÔÏÒÙ ÉÓÐÏÌØÚÕÀ ÄÌÑ
ËÌÀÞÅÊ, Á ÐÏÔÏÍ ÍÕÞÁÀÓØ ÅÓÌÉ ÚÁÂÕÄÕ ÏÂÎÏ×ÉÔØ ÇÅÎÅÒÁÔÏÒ ÐÏÓÌÅ ÄÏÂÁ×ÌÅÎÉÑ
ÓÔÒÏË × ÔÁÂÌÉÃÕ ×ÒÕÞÎÕÀ.
òÅÛÉÌ ÐÅÒÅ×ÅÓÔÉ ÎÁ GUID ÎÅËÏÔÏÒÙÅ ÍÅÓÔÁ, ÞÔÕËÁ ËÌÁÎÁÑ ÈÏÔØ É ÉÚÂÙÔÏÞÎÁÑ, ÎÏ
ÚÁÔÏ ÕÎÉËÁÌØÎÏÓÔØ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÍÅÔÏ ÎÁÈÏÖÄÅÎÉÑ É ÂÁÚÙ ÍÏÖÎÏ ÏÂßÅÄÉÎÑÔØ ÐÏ
ÎÉÍ.
äÁË ×ÏÔ ÐÏ ÐÏ×ÏÄÕ ÓÔÁÔØÉ ÔÁÍ ÎÁÐÉÓÁÎÏ "äÅÌÏ × ÔÏÍ, ÞÔÏ × ÓÔÒÏËÏ×ÏÍ ×ÙÒÁÖÅÎÉÉ
GUID ÍÅÎÑÅÔÓÑ × Ó×ÏÅÊ ÌÅ×ÏÊ ÞÁÓÔÉ." ÐÏÒÏÂÏ×ÁÌ ÓÇÅÎÅÒÉÔØ É ÏÂÏÌÄÅÌ
function fn_CreateGUIDP: PChar; cdecl; export;
var
GUID: TGUID;
GUIDString: string;
begin
CreateGuid(GUID);
GUIDString := GuidToString(GUID);
StrPCopy(Result,
Copy(GUIDString, 1+1, 8)+
Copy(GUIDString, 1+10, 4)+
Copy(GUIDString, 1+15, 4)+
Copy(GUIDString, 1+20, 4)+
Copy(GUIDString, 1+25, 12));
end;
function fn_Copy(Value: PChar; var Index, Count: Integer): PChar; cdecl;
export;
var
i, L : integer;
begin
L := StrLen(Value);
if (index < 1) or (Count < 1) or (index > L) then begin
Result := Value;
Result[0] := #0;
Exit;
end;
i := index+count-1;
if (i < L) then Value[i] := #0;
Result := @Value[index-1];
end;
{ DECLARE EXTERNAL FUNCTION B_CreateGUIDP
RETURNS CSTRING(32)
ENTRY_POINT "fn_CreateGUIDP" MODULE_NAME "B_UDF2.DLL" }
{ DECLARE EXTERNAL FUNCTION B_Copy
CSTRING(1024), INTEGER , INTEGER RETURNS CSTRING(1024)
ENTRY_POINT "fn_Copy" MODULE_NAME "B_UDF2.DLL" }
execute block
returns(c1 varchar(10), c2 varchar(6), c3 varchar(6), c4 varchar(6), c5
varchar(14))
as
declare variable i integer;
declare variable c varchar(32);
begin
i = 0;
while (i < 100) do begin
c = b_CreateGUIDP();
c1 = '"' || b_Copy(c, 1, 8) || '"';
c2 = '"' || b_Copy(c, 9, 4) || '"';
c3 = '"' || b_Copy(c, 13, 4) || '"';
c4 = '"' || b_Copy(c, 17, 4) || '"';
c5 = '"' || b_Copy(c, 21, 12) || '"';
suspend;
i = i + 1;
end
end
ÒÅÚÕÌØÔÁÔ ÐÏÌÎÁÑ ËÁÛÁ
ÄÁÎÎÙÅ ×ÙÇÒÕÚÉÌ × Excel É ÐÙÔÁÌÓÑ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏ ËÏÌÏÎËÁÍ × ÎÅÄÏÕÍÅÎÉÉ
ÐÏÞÅÍÕ ÎÅÔ ÐÏ×ÔÏÒÅÎÉÊ × ËÏÌÏÎËÁÈ ÌÉÂÏ × èò ÍÅÔÏÄ ÐÏÌÕÞÅÎÉÑ ÕÎÉËÁÌØÎÏÇÏ
ÚÎÁÞÅÎÉÑ ÕÌÕÞÛÉÌÉ ÌÉÂÏ ÅÝÅ ÚÁ×ÉÓÉÔ ÏÔ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÑ ÐÒÏÃÁ. ðÏÌÕÞÁÅÔÓÑ ÎÅÔ
ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÒÁÚ×ÏÒÁÞÉ×ÁÔØ ÄÁÎÎÙÅ.
ÅÄÉÎÓÔ×ÅÎÎÙÊ ÚÎÁË ËÏÔÏÒÙÊ ÎÅÍÅÎÑÌÓÑ ÜÔÏ Ó3[1]