Nesse vídeo demonstraremos em como fazer a comparação de duas variáveis (inclusive array, objetos e blocos de código) usando a função Compare.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe085
Exemplo de como comparar duas variáveis (inclusive objetos, arrays e blocos de código)
@type Function
@author Atilio
@since 09/12/2022
@obs
Função Compare
Parâmetros
+ Informa a variável que irá comparar (array, objeto, bloco de código, numérico, caractere, lógico e data)
+ Informa a variável que será comparada (array, objeto, bloco de código, numérico, caractere, lógico e data)
+ Caso seja um array e você quiser ver qual a posição que esta diferente passe esse atributo com o @
Retorno
+ Retorna .F. se houver diferença e .T. se estiver igual
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe085()
Local aArea := FWGetArea()
Local oFont1
Local oFont2
Local aArray1 := {}
Local aArray2 := {}
Local nPosDif := 0
//Instancia a classe TFont em dois objetos
oFont1 := TFont():New("Tahoma", , -12)
oFont2 := TFont():New("Tahoma", , -12)
//Compara os dois objetos
If Compare(oFont1, oFont2)
FWAlertSuccess("Os dois objetos são iguais", "Teste Compare com Objetos")
Else
FWAlertError("Os dois objetos são diferentes", "Teste Compare com Objetos")
EndIf
//Monta os dois arrays
aAdd(aArray1, "Daniel")
aAdd(aArray1, "João")
aAdd(aArray1, "Maria")
aAdd(aArray2, "Daniel")
aAdd(aArray2, "José")
aAdd(aArray2, "Maria")
//Compara os dois arrays
If Compare(aArray1, aArray2, @nPosDif)
FWAlertSuccess("Os dois arrays são iguais", "Teste Compare com Arrays")
Else
FWAlertError("Os dois arrays são diferentes, primeira diferença encontrada em " + cValToChar(nPosDif), "Teste Compare com Arrays")
EndIf
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.