Parse Method
Class: _LIST_PARSER_0
Expand/Collapse source code of procedure Parse Source Code
      LPARAMETERS CHNGREF laFiles,INP loEngine
      EXTERNAL ARRAY laFiles
      LOCAL liEnd,lcData,lii,liy,liz,lcPom,lnFileSize,liAT,liATE
      DIMENSION laFiles(100,7)
      liEnd=AT("\015\012",loEngine.cData,1)
      lii=0

      DO WHILE liEnd>0
         lcData=SUBSTR(loEngine.cData,2,liEnd-2)
         loEngine.cData=SUBSTR(loEngine.cData,liEnd+2)
         liEnd=AT("\015\012",loEngine.cData,1)

         lii=lii+1
         IF lii>ALEN(laFiles,1)
            DIMENSION laFiles(lii+100,7)
         ENDIF            

         liy=OCCURS(",",lcData)+1
         * Row processing

         FOR liz=1 TO liy
             liAT=IIF(liz=1,1,AT(",",lcData,liz-1)+1)
             liATE=IIF(liz<liy-1,AT(",",lcData,liz)-1,LEN(lcData))
             lcPom=SUBSTR(lcData,liAT,liATE-liAT)

             DO CASE
                CASE LEFT(lcPom,1)='i'

                CASE LEFT(lcPom,1)='m'
                    * Date last modify
                    laFiles(lii,6)={^1970-01-01 00:00:00}+VAL(SUBSTR(lcPom,2))

                CASE LEFT(lcPom,1)='r' OR LEFT(lcPom,1)='/'
                     laFiles(lii,1)=lcPom

                CASE LEFT(lcPom,1)='s'
                     laFiles(lii,5)=VAL(ALLT(SUBSTR(lcPom,2))) && Size
*!*                         IF This.oFTP.GetFileSize(laFiles(lii,7),@lnFileSize)
*!*                            laFiles(lii,5)=lnFileSize
*!*                         ENDIF

                OTHERWISE
                    * Name of file
                    laFiles(lii,7)=STRTRAN(lcPom,"\t","")

             ENDCASE
         NEXT

         laFiles(lii,2)=0
      ENDDO
      IF lii>0 AND lii<>ALEN(laFiles,1)
         DIMENSION laFiles(lii,7)
      ENDIF
      RETURN .T.