BlackTDN: Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL (Making-of :: operador de Hash)
Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL (Making-of :: operador de Hash)
Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL ;
Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL (Round 2, Figth!) ; e
Os "Bastidores da série: Protheus :: Advpl :: Duelo de Titãs :: Harbour x ADVPL", irão revelar o poder por trás do pré-processador ADVPL. Nosso astro Principal: "ptxlsxml.ch".
O Operador de Hash (ao som de Ice T "Colors").
Antes de mais nada, para que tudo fosse possível, foi necessária uma "pequena" adaptação no código original do Harbour pois o operador de Hash => não é suportado pela linguagem ADVPL. O operador de Hash do Harbour, a exemplo do operador de Array {} (ADVPL/Harbour) tem uma função equivalente.
Para o operador {} temos a função Array() e, para =>, do Harbour, teremos hb_hash(). Sem isso seria impossível a utilização do código Harbour em ADVPL.
As alterações em relação ao operador => foram:
Para o Programa: xlsxml.prg
Para o programa: xlsxml_s.prg
e, Para o Programa: xlsxml_y.prg
Mas afinal, o que é Hash?
Segundo a WikPédia podemos definir Hash ou "Vetor associativo" como:
A relação entre uma chave e seu valor as vezes é chamada de mapeamento ou ligação. Por exemplo, se o valor associado à chave "bob" é 7, dizemos que nosso vetor mapeia "bob" para 7. Vetores associativos estão intimamente relacionados ao conceito matemático de função bijetora um domínio finito. Como conseqüência, um uso comum e importante de vetores associativos é em memorização.
Onde encontramos essa estrutura/formação:
Em arquivos INI, XML, HTML, etc.
Bem, o maior trabalho na compatibilização do código Harbour com ADVPL, foi, de fato, Hash. Tive que simulá-lo e, com certeza, não o fiz de forma otimizada. Reaproveitei, por suas características, a classe TFINI; que evoluiu a séria candidata ao controle de Hash e passou a denominar-se THash donde TINI passou a derivar. É mister afirmar que, com um pouquinho de estudo, poderemos implementar Hash de forma intuitiva, nativa e, por que não dizer, descente. Mas, isso é uma outra história.
Que venha o Pré-Processador.
Postado por иαldσ dj às 10:08:00
Marcadores: advpl, Compatibilização de Código, Dicas, Harbour, Harbour Project, Hash, Naldo Dj, Pré-Processador, protheus, totvs, totvs/microsiga, Tutorial Advpl, Vetor Associativo
Rodrigo "OverFail" 12 de dezembro de 2011 10:00
Fala ae Grande Mestre Lee!!!! Hehehe.. é impressao ou realmente vc esta fodao nos ultimos posts??? Caraca... esse com certeza esta no top10, pena q nem todos que acompanham o blog ou trabalham com Microsiga/Advpl no dia a dia entenderam todo processo e a grande obra de arte por tras de tudo isso... Mas de toda forma que sirva antes de tudo como grande exemplo para que o conhecimento nunca fica engessado como muitos acabam fazendo no decorrer de tempo! Parabens e mais uma vez sem palavras Mestrao!!! Grande abraço!