Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How generate a valid GUID
Message
De
06/09/2005 05:00:12
Metin Emre
Ozcom Bilgisayar Ltd.
Istanbul, Turquie
 
 
À
06/09/2005 04:55:51
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP1
Network:
Windows XP
Database:
Visual FoxPro
Divers
Thread ID:
01046923
Message ID:
01046924
Vues:
101
Hi Luigi,
I got it from Cetin Basoz,
WAIT WINDOW guid2(1)
WAIT WINDOW guid2(2)
WAIT WINDOW guid2(3)


proc guid2
lPARAMETERS xform 
  IF EMPTY(m.xform)
    xform=1
  ENDIF 
Local loGUID, lcGUID, lcGUID16
loGUID = Createobject('GUIDLib')
lcGUID = loGUID.GetGUID()

lcGUID16 = loGUID.GUID2Str(lcGUID)

DO CASE 
  CASE m.xform=1
    RETURN lcGUID
  CASE m.xform=2
    RETURN loGUID.Str2Guid(lcGUID16)
  OTHERWISE 
    RETURN lcGUID16
ENDCASE     

Define Class GUIDLib As Relation
 Procedure Init
 Declare Integer UuidCreate In 'RPCRT4.dll' String @pguid
 Declare Integer CoCreateGuid In 'Ole32.dll' ;
   string @pguid
 Declare Integer StringFromGUID2 In 'Ole32.dll' ;
   string rguid, String @lpsz, Integer cchMax
 Declare RtlMoveMemory In WIN32API ;
   INTEGER @DestNumeric, ;
   STRING @pVoidSource, ;
   INTEGER nLength
Endproc

 Procedure GetGUID
 Local pguid,rguid,lcFail
 lcFail = ""
 pguid=Replicate(Chr(0),16)
 rguid=Replicate(Chr(0),80)

 If Inlist(UuidCreate(@pguid),0,1824) && 1824 = LOCAL_ONLY
   Return Iif(StringFromGUID2(pguid,@rguid,40) # 0, ;
      Strconv(Left(rguid,76),6), lcFail)
 Endif
 Return lcFail
Endproc

 Procedure GUID2Str
 Lparameters tcGUID
 Local lcGUID, lcGUID2, ix
 lcGUID = Chrtran(tcGUID, '{}-','')
 lcGUID2 = ''
 For ix=16 To 1 Step -1
   lcGUID2 = lcGUID2 + Chr(;
     Evaluate('0x'+Substr(lcGUID, (ix-1) * 2 + 1, 2)))
 Endfor
 Return lcGUID2
Endproc

 Procedure Str2Guid
 Lparameters tc16Bytes
 Local lcGUID, ix, lnValue
 lnValue = 0
 lcGUID = ''
 For ix=4 To 1 Step -1
   RtlMoveMemory(@lnValue, ;
     Substr(tc16Bytes, (ix-1)*4+1, 4), 4)
   lcGUID = lcGUID + ;
     Substr(Transform(lnValue, '@0'),3)
 Endfor
 Return Transform(lcGUID, ;
   "@R XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
Endproc
Enddefine
>Hi at all,
>
>I need to export a table to be used in .Net program that need a string field with a valid GUID like "d398774c-ec77-4778-8cee-e9b4e9f351fa" any idea how to generate it or is there any function that can do it?
>
>Thanks in advance
>
>Luigi
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform