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