äÁÕÖ ÅÓÌÉ Ñ ÐÏÐÅÒÓÑ ÞÔÏ ÔÏ ÞÉÔÁÔØ ÜÔÏ ÎÅ Ë ÄÏÂÒÕ, × ÌÅÓÕ ËÔÏ ÔÏ ÚÄÏÈÎÅÔ É 
ÎÁÞÎÕÔÓÑ ËÁÔÁËÌÉÚÍÙ. (äÁÖ ÚÅÍÌÅÔÒÑÓÅÎÉÅ ÂÙÌÏ, Ë ÞÅÍÕ ÂÙ ÜÔÏ).

ôÕÔ ÎÁÄÏÓÕÇÅ ÐÏÄÕÍÁÌ É ÞÔÏ Ö Ñ ÏÔ ÖÉÚÎÉ ÏÔÓÔÁÀ ÇÅÎÅÒÁÔÏÒÙ ÉÓÐÏÌØÚÕÀ ÄÌÑ 
ËÌÀÞÅÊ, Á ÐÏÔÏÍ ÍÕÞÁÀÓØ ÅÓÌÉ ÚÁÂÕÄÕ ÏÂÎÏ×ÉÔØ ÇÅÎÅÒÁÔÏÒ ÐÏÓÌÅ ÄÏÂÁ×ÌÅÎÉÑ 
ÓÔÒÏË × ÔÁÂÌÉÃÕ ×ÒÕÞÎÕÀ.

òÅÛÉÌ ÐÅÒÅ×ÅÓÔÉ ÎÁ 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] 



Ответить