Define Class oUtile As Custom Procedure Init Declare Integer GetShortPathName In Win32API; STRING @lpszLongPath, String @lpszShortPath,; INTEGER cchBuffer Endproc Function ShortPath Lparameter tcPath Local lcPath, lcShortName, lnLength, lnResult lcPath = tcPath lcShortName = Space(260) lnLength = Len(lcShortName) lnResult = GetShortPathName(@lcPath, @lcShortName, lnLength) If lnResult = 0 Return "" Endif Return Left(lcShortName,lnResult) Endfunc Function GetAppStartPath Local lcPath Do Case *** VFP 6 provides ServerName property for COM servers EXE/DLL/MTDLL Case Inlist(Application.StartMode,2,3,5) lcPath = Justpath(Application.ServerName) *!* *** Interactive *!* CASE (Application.StartMode) = 0 *!* lcPath = SYS(5) + CURDIR() *** Active Document Case Atc(".APP",Sys(16,0)) > 0 lcPath = Justpath(Sys(16,0)) *** Standalone EXE or VFP Development Otherwise lcPath = Justpath(Sys(16,0)) If Atc("PROCEDURE",lcPath) > 0 lcPath = Substr(lcPath,Rat(":",lcPath)-1) Endif Endcase Return Addbs(lcPath) Endfunc Procedure lista2array Lparameters tcLISTA,taArray,tcSeparator && tcLista este un sir de caractere care contine elementele separate prin <;> default && tarray este vectorul care se completeaza - trebuie dat prin referinta && tcSeparator separatorul de elemente din tcLista - default este ";" - este optional && intoarce numarul de elemente gasite && ex: lnNr = lista2array("ana;are;mere",@alista,";") External Array taArray Local Lclista,lcSeparator,lnNRF,lcF1,i lnNRF = 0 Lclista=Allt(tcLISTA) If Parameters()<3 Or Empty(tcSeparator) lcSeparator=";" Else lcSeparator=Alltrim(tcSeparator) Endif If Right(Lclista,1)!=lcSeparator Lclista=Lclista+lcSeparator Endif lnNRF=Occurs(lcSeparator,Lclista) If lnNRF>0 Dimension taArray[lnNrf,1] For i=1 To lnNRF lcF1=Left(Lclista,At(lcSeparator,Lclista)-1) If i!=lnNRF Lclista=Substr(Lclista,At(lcSeparator,Lclista)+1) Endif taArray[i]=lcF1 Endfor Else lnNRF = 0 Endif Return lnNRF Endproc && lista2array Procedure decripteazaParola Endproc Enddefine