LPARAMETERS CHNGREF laFiles,INP loEngine
EXTERNAL ARRAY laFiles
LOCAL liEnd,lcData,lii,liAT,liy,liz,lcPom,lnFileSize
DIMENSION m.laFiles(100,7)
liEnd=AT(CRLF,m.loEngine.cData,1)
lii=0
DO WHILE m.liEnd>0
lcData=LEFT(m.loEngine.cData,m.liEnd-1)
loEngine.cData=SUBSTR(m.loEngine.cData,m.liEnd+2)
liEnd=AT(CRLF,m.loEngine.cData,1)
lii=m.lii+1
IF m.lii>ALEN(m.laFiles,1)
DIMENSION m.laFiles(m.lii+100,7)
ENDIF
* Row processing
laFiles(m.lii,1)=SUBSTR(m.lcData,1,10)
laFiles(m.lii,2)=VAL(SUBSTR(m.lcData,12,3))
* Check where is: "Mon Da HH:MM" or "Mon Da YYYY"
liAT=This.FindDT(@m.lcData)
IF m.liAT=0 && Fail at parsing file
This.oFTP.SetExtendedError(_FTPS_UE_PLF,m.lcRow)
RETURN .F.
ENDIF
* Date last modify
laFiles(m.lii,6)=This.FormatDT(SUBSTR(m.lcData,m.liAT,12))
* File name
laFiles(m.lii,7)=SUBSTR(m.lcData,m.liAT+13)
* from 16. char to liAT-2 are three columns
lcPom=ALLTRIM(SUBSTR(m.lcData,16,m.liAT-16-1))
liy=AT(" ",m.lcPom)
liz=RAT(" ",m.lcPom)
laFiles(m.lii,3)=ALLTRIM(LEFT(m.lcPom,m.liy-1)) && Owner
laFiles(m.lii,4)=ALLTRIM(SUBSTR(m.lcPom,m.liy+1,m.liz-1-m.liy)) && Group
* laFiles(m.lii,5)=VAL(SUBSTR(m.lcPom,m.liz+1)) && Size
IF This.oFTP.GetFileSize(m.laFiles(m.lii,7),@m.lnFileSize)
laFiles(m.lii,5)=m.lnFileSize
ENDIF
ENDDO
IF m.lii>0 AND m.lii<>ALEN(m.laFiles,1)
DIMENSION laFiles(m.lii,7)
ENDIF
RETURN .T.