Comparando se dois arrays tem diferenças com DiffArray e AdmDiffArray – Maratona AdvPL e TL++ 142

Nesse vídeo demonstraremos a utilização das funções DiffArray e AdmDiffArray sendo que ambas servem para comparar se dois arrays possuem diferenças ou se são iguais.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe142
Retorna se há diferenças entre dois arrays
@type Function
@author Atilio
@since 16/12/2022
@obs 
    Função DiffArray
    Parâmetros
        + Array a ser comparado (monodimensional)
        + Array de comparação (monodimensional)
    Retorno
        + Retorna .F. se são iguais ou .T. se houver diferenças

    Função AdmDiffArray
    Parâmetros
        + Array a ser comparado (mono ou multidimensional)
        + Array de comparação (mono ou multidimensional)
    Retorno
        + .F. se são iguais ou .T. se houver diferenças

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe142()
    Local aArea       := FWGetArea()
    Local aPessoas1   := {}
    Local aPessoas2   := {}

    //Adiciona dados em ambos os arrays (monodimensional)
    aAdd(aPessoas1, "Daniel")
    aAdd(aPessoas1, "João")
    aAdd(aPessoas1, "Maria")

    aAdd(aPessoas2, "Daniel")
    aAdd(aPessoas2, "Maria")
    aAdd(aPessoas2, "José")

    //Faz a comparação de arrays monodimensionais
    If DiffArray(aPessoas1, aPessoas2)
        FWAlertError("Há diferenças entre os dois arrays", "Teste com DiffArray")
    Else
        FWAlertSuccess("Não há diferenças entre os dois arrays", "Teste com DiffArray")
    EndIf
    



    //Adiciona dados em ambos os arrays (multidimensional)
    aPessoas1 := {}
    aAdd(aPessoas1, {"Daniel", sToD("19930712"), "Bauru"})
    aAdd(aPessoas1, {"Joao",   sToD("19910131"), "Agudos"})
    aAdd(aPessoas1, {"Maria",  sToD("19921231"), "Piratininga"})

    aPessoas2 := {}
    aAdd(aPessoas2, {"Daniel", sToD("19930712"), "Bauru"})
    aAdd(aPessoas2, {"Joao",   sToD("19910131"), "Agudos"})
    aAdd(aPessoas2, {"Maria",  sToD("19921231"), "Piratininga"})

    //Faz a comparação de arrays multidimensionais
    If AdmDiffArray(aPessoas1, aPessoas2)
        FWAlertError("Há diferenças entre os dois arrays", "Teste com AdmDiffArray")
    Else
        FWAlertSuccess("Não há diferenças entre os dois arrays", "Teste com AdmDiffArray")
    EndIf

    FWRestArea(aArea)
Return

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