Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode (17) :: Comparando Implementações do Desafio "Letter Combinations of a Phone Number" em Harbour e TOTVS TLPP

_Créditos das imagens: ChatGPT_ # LeetCode (17) :: Comparando Implementações do Desafio "Letter Combinations of a Phone Number" em Harbour e TOTVS TLPP O desafio [**"Letter Combinations of a Phone Number"**](https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/) (Combinações de Letras de um Número de Telefone) é um problema clássico de programação que envolve a geração de todas as combinações possíveis de letras que um número de telefone pode representar, com base no mapeamento tradicional dos teclados de telefone. Abaixo, comparamos duas implementações desse desafio: uma em **Harbour** e outra em **TOTVS TLPP** (TOTVS Language Plus Plus). ## O Desafio Dada uma string contendo dígitos de 2 a 9, retorne todas as combinações possíveis de letras que esses dígitos podem representar. O mapeamento dos dígitos para as letras é o mesmo dos teclados de telefone tradicionais: - 2: "abc" - 3: "def" - 4: "ghi" - 5: ...

Protheus :: Obtendo Array das Classes de Objetos com __ClsArr()


Se deseja obter as Classes para uso em Advpl utilize a função __ClsArr(). _Ela retornará um array multidimensional com todas as classes que poderão ser utilizadas em Advpl. No exemplo que postei sobre "Repositório Auxiliar" utilizei essa função para retornar as informações à respeito da classe "RPO".

Sua sintaxe é muito simples: __ClsArr() -> aClassArray.

Ex.:

Local aClassesArray := __ClsArray()

No Retorno de __ClsArray() obteremos um array com todas as classes, seus "membros", seus "métodos" e "parâmetros dos métodos". O único problema é que os parâmetros corresponderão ao seu tipo e não à sua descrição formal (o que dificulta, um pouco, ao leigos, saber o que passar para eles).

Usando como exemplo o array atribuido à variável aClassesArray teremos, para o elemento 4 as seguintes informações:

aClassesArray[4] //Informações da classe RPO
aClassesArray[4][1] //RPO que refere-se ao nome da classe
aClassesArray[4][2] //Esse elemento refere-se à Classe Pai
aClassesArray[4][3] //Retorna as variáveis "membros" da classe
aClassesArray[4][3][1][1] //Variável DEFINES
aClassesArray[4][3][2][1] //Variável ERRCOL
aClassesArray[4][3][3][1] //Variável ERRLINE
aClassesArray[4][3][4][1] //Variável ERRSTR
aClassesArray[4][3][5][1] //Variável INCLUDES
aClassesArray[4][3][6][1] //Variável MAINHEADER
aClassesArray[4][4] //Métodos da Classe
aClassesArray[4][4][1][1] //Método BASICOPCB
aClassesArray[4][4][1][2] //Parâmetros do Método BASICOPCB
aClassesArray[4][4][2][1] //Método CHKSUM
aClassesArray[4][4][2][2] //Parâmetros do Método CHKSUM
aClassesArray[4][4][3][1] //Método CLOSE
aClassesArray[4][4][3][2] //Parâmetros do Método CLOSE
aClassesArray[4][4][4][1] //Método COMPILE
aClassesArray[4][4][4][2] //Parâmetros do Método COMPILE
...

E assim por diante.

Percorra todos os elementos do array para obter informações de todas as classes disponíveis.



Comentários

  1. É possível obter os métodos de MsNewGetDados com essa função? Não consegui encontrar essa e nem outras funções de frame.

    ResponderExcluir
  2. Bom dia, gostaria de Deixa meu Agradecimento ao autor, pois a documentação do TDN ainda é muito mal documentada em relação a classe, um exmplo é sobre a MsNewGetDados que até hoje não tem as propriedades da classe na documentação.

    ResponderExcluir
  3. Tentei executar isso:
    Local aClassesArray := __ClsArray()

    Mas deu mensagem de erro:
    Opção não disponivel no Protheus
    Função: __CLSARRAY Called By ........ etc.

    ResponderExcluir
  4. Boa tarde.
    Gostaria de saber se alguém possui qualquer um dos fontes abaixo.
    CFGR510 e ou CFGA510.
    Quem tiver e puder me mandar ficaria muito agradecido e ate mesmo uma recompensa poderei dar.
    Mas desde já agradeço.

    ResponderExcluir
    Respostas
    1. Olá amigo, conseguiu o fonte do cfgr510 ?

      Excluir

Postar um comentário

Postagens mais visitadas