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)=LEFT(m.lcData,1)+SUBSTR(m.lcData,4,8)
laFiles(m.lii,2)=0
* 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)=RTRIM(SUBSTR(m.lcData,m.liAT+13))
* from 16. char to liAT-2 are two columns
lcPom=ALLTRIM(SUBSTR(m.lcData,14,m.liAT-14-1))
liy=AT(" ",m.lcPom)
laFiles(m.lii,3)=ALLTRIM(LEFT(m.lcPom,m.liy-1)) && Owner
laFiles(m.lii,4)="" && Group
* laFiles(m.lii,5)=VAL(ALLT(SUBSTR(m.lcPom,m.liy+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 m.laFiles(m.lii,7)
ENDIF
RETURN .T.