Files
comun/programe/lista2cursor.prg

38 lines
976 B
Plaintext

PROCEDURE lista2cursor
PARAMETERS tcLISTA,tcAlias,tcCol1,tcSeparator
&& tcLista este un sir de caractere care contine elementele separate prin <;> default
&& tcAlias este cursorul 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,";")
LOCAL Lclista,lcSeparator,lnNRF,lcF1,i
lcLista=UPPER(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)
FOR i=1 TO lnNRF
lcF1=LEFT(lcLista,AT(lcSeparator,lcLista)-1)
IF i!=lnNRF
lcLista=SUBSTR(lcLista,AT(lcSeparator,lcLista)+1)
ENDIF
INSERT INTO (tcAlias) (&tcCol1) VALUES (lcF1)
ENDFOR
RETURN lnNrf
ENDPROC && lista2cursor