Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Zigzag Conversion: Implementando Soluções em xBase (Harbour) e TL++

_Créditos das imagens: ChatGPT_ ### LeetCode :: Zigzag Conversion: Implementando Soluções em xBase (Harbour) e TL++ A ["Zigzag Conversion"](https://leetcode.com/problems/zigzag-conversion/description/) é um problema popular do LeetCode que desafia desenvolvedores a transformar uma string em um padrão zigzag com base no número de linhas especificado, para então reconstruir a string seguindo a leitura linha a linha do padrão. Aqui, apresento soluções desenvolvidas em Harbour (XBase) e TL++ com melhorias e detalhes adicionais. --- ### **O Problema** Dado uma string e um número de linhas, distribua os caracteres em um padrão zigzag. Leia as linhas do padrão sequencialmente para obter o resultado: Exemplo: **Input:** String: "PAYPALISHIRING" Linhas: 3 **Padrão Zigzag:** ``` P A H N A P L S I I G Y I R ``` **Output:** "PAHNAPLSIIGYIR" --- ### **Implementação em Harbour** As soluções estão organizadas em dois arquivos principai...

Protheus :: Disponibilizando os módulos específicos no SIGAMDI

O Microsiga Protheus possibilita ao usuário criar até 3 Módulos Específicos. O SIGAESP, SIGAESP1 e SIGAESP2. Mas, esses módulos só estarão disponíveis para uso através do SIGAMDI se as funções que retornarem o seu nome estiverem compiladas no repositório.

As funções são, respectivamente:

U_ESPNOME();
U_ESP1NOME() ; e
U_ESP2NOME().

Que em sua declaração formal ficariam como:


User Function EspNome()
Return( "SIGAESP" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function EspNome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP

**********************************************************

User Function Esp1Nome()
Return( "SIGAESP1" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function Esp1Nome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP1" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP1

**********************************************************

User Function Esp2Nome()
Return( "SIGAESP2" ) //Neste caso Retornei o Nome do Módulo.

ou

User Function Esp2Nome()
Return( OemToAnsi( "Descrição do Módulo SIGAESP2" ) ) //Neste caso Retornei uma Descrição para o Módulo.

Para Retornar a Descrição para o Módulo Específico SIGAESP2
       

Lembrando que, os pontos de Entrada Genéricos para os Módulos, também estão disponíveis para os módulos Específicos, bastando para isso, criar uma "User Function" com o mesmo nome da Função Principal do Módulo, como:


User Function SIGAESP()
 //...Faz Alguma Coisa...
Return( NIL ) 

User Function SIGAESP1()
 //...Faz Alguma Coisa...
Return( NIL )

User Function SIGAESP2()
 //...Faz Alguma Coisa...
Return( NIL )
       

Os Pontos de Entrada Genéricos de um módulo serão sempre executados após a abertura do sistema e sempre que se retornar ao menu principal.


E.T.: Lembrando que os módulos Específicos só estarão disponíveis aos usuários que receberem acesso através da configuração de senha.

[]s
иαldσ dj

...

Comentários

  1. Boa tarde Naldo,
    Só uma dúvida sobre esta postagem, estou necessitando utilizar os pontos de entrada dos módulos conforme postado, porém não funciona no modo Flat e MDI, qual a alternativa neste caso?

    ResponderExcluir

Postar um comentário

Postagens mais visitadas