Parse Method
Class: _LIST_PARSER_4
Description:
Expand/Collapse source code of procedure Parse Source Code
      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.