Função que verifica se um Array está vazio

Olá pessoal…

Hoje vou mostrar uma função que verifica se um array está vazio (ou com todas as linhas excluídas).

AdvPL

AdvPL

Para testar se um array está vazio, podemos facilmente utilizar a função Len, porém, e se todas as linhas do aCols estiverem excluídas e você precisar validar?

Foi pensando nisso, que criei a função zVazio, que recebe por parâmetro o array que precisa ser validado.

Abaixo o código fonte criado.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zVazio
Função que verifica se o array está vazio (ou somente com linhas excluídas)
@type function
@author Atilio
@since 05/03/2016
@version 1.0
	@param aArray, Array, Array que contém as informações (como um aCols)
	@return lRet, Se o Array está vazio (não tem nenhuma posição válida)
/*/

User Function zVazio(aArray)
	Local lRet := .F.
	Local nAtual := 1
	Local nUltPos := 0
	Local nExcluidos := 0
	
	//Se o tamanho for 0, Array é vazio
	If Len(aArray) == 0
		lRet := .T.
	
	//Se tiver em branco, Array é vazio
	ElseIf Empty(aArray)
		lRet := .T.
		
	Else
		//Percorro o Array
		For nAtual := 1 To Len(aArray)
			//Pega a última posição do aCols (a que contém se a linha está excluída - .T. -, ou não - .F. -)
			nUltPos := Len(aArray[nAtual])
			
			//Se tiver excluído
			If aArray[nAtual][nUltPos]
				nExcluidos++
			EndIf
		Next
		
		//Se a quantidade de excluídos for igual ao tamanho do array, array está vazio
		If nExcluidos == Len(aArray)
			lRet := .T.
		EndIf
	EndIf
Return lRet

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação