Páginas filhas
  • log0821_lista_arquivos_diretorio()

Troca da função log0821_lista_arquivos_diretorio() pelas funções Framework LOG_file_getListCount() ou LOG_file_getList().


CÓDIGO ANTIGO
GLOBALS
  DEFINE ga_files            ARRAY[10000] OF RECORD
         tipo                CHAR(01),
         files               CHAR(60)
  END RECORD
END GLOBALS

#-----------------------------------------#
 FUNCTION replace_log0821_old(l_diretorio)
#-----------------------------------------#
   DEFINE l_diretorio CHAR(200),
          l_status SMALLINT,
          l_msg    CHAR(100),
          l_ind    SMALLINT

   CALL log0821_lista_arquivos_diretorio(l_diretorio,"xml","")
        RETURNING l_status, l_msg

  IF l_status THEN
     FOR l_ind = 1 TO 10000
        IF ga_files[m_ind].files <> " " THEN
 
           ### CODIGO PARA USO DO ARQUIVO RETORNADO NA LISTA...###
           
        END IF
     END FOR
  END IF
 END FUNCTION

CÓDIGO NOVO
### ************** Eliminar a variável GLOBAL ga_files pois não é mais necessária *******************

#------------------------------------------#
 FUNCTION replace_log0821_new(l_diretorio)
#------------------------------------------#
   DEFINE l_diretorio CHAR(200),
          l_status SMALLINT,
          l_msg    CHAR(100),
          l_ind    SMALLINT,
          la_files ARRAY[] OF CHAR(250)

   DEFINE l_file_name CHAR(250)
   DEFINE l_count     SMALLINT
   DEFINE l_total     SMALLINT
   DEFINE l_drive, l_path, l_name, l_extension CHAR(100)
 
   ### Existe também a função LOG_file_getList(). Veja na seção "VEJA TAMBÉM" o link para a respectiva documentação.
   LET l_total = LOG_file_getListCount(l_diretorio,"*.xml",FALSE,FALSE,0)
 
   FOR l_ind = 1 TO l_total
      LET l_file_name = LOG_file_getFromList(l_ind)
 
      CALL LOG_file_splithPath(l_file_name) RETURNING l_drive, l_path, l_name, l_extension
 
      LET l_count = l_count + 1
      CALL ArrayAddItem(la_files,1)
 
      LET la_files[l_count] = l_name CLIPPED, l_extension
   END FOR
 END FUNCTION


Observações

Desta forma evitamos o uso de uma variável GLOBAL e podemos fazer o uso de arrays dinâmicos garantindo uma alocação de memória mais consciente para a execução do programa/rotina.


Veja também

LOG_file_getListCount

LOG_file_getList