38 lines
976 B
Plaintext
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 |