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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas