Página 4 de 4

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 16 Mar 2016 16:15
por JoséQuintas
Se existe, está na hbnfe.

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 16 Mar 2016 20:01
por aedurocha
José Quintas achei que você conhecia a fução porque usou como exemplo na sua mensagem de numero 4124
cXMl := ConverteTxtXml( cTxt )

Mas pelo que percebí agora era só exemplo não e?

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 16 Mar 2016 20:20
por Toledo
aedurocha escreveu:na sua mensagem de numero 4124
A expressão "Mensagens: 4124" corresponde ao número de mensagens que o usuário postou aqui no fórum.

A mensagem que aedurocha indicou na mensagem acima é:
https://pctoledo.org/forum/viewto ... 30#p100271

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 10 Jun 2016 19:11
por JoséQuintas
Levei um tempinho pra lembrar o que meu fonte fazia... rs

É um exemplo interessante de uso de #define pra facilitar, até com FOR EACH.
Espere lá, aproveite pra fazer um teste.

Analise quanto tempo leva pra decifrar o que este fonte faz, e o que ele está usando:

Código: Selecionar todos

   FOR nCont = 1 TO Len( oTBrowse )
      temp := tbColumnNew( oTBrowse[ nCont, 1 ], oTBrowse[ nCont, 2 ] )
      IF Len( oTBrowse[ nCont ] ) > 2
         temp:ColorBlock := oTBrowse[ nCont, 3 ]
      ENDIF
      oBrowse:AddColumn( temp )
   NEXT
Agora facilitando com #define, analise quanto tempo leva.

Código: Selecionar todos

#define TB_TITULO 1
#define TB_CONTEUDO 2
#define TB_BLOCO_COR 3

   FOR nCont = 1 TO Len( oTBrowse )
      temp := tbColumnNew( oTBrowse[ nCont, TB_TITULO ], oTBrowse[ nCont, TB_CONTEUDO ] )
      IF Len( oTBrowse[ nCont ] ) > 2
         temp:ColorBlock := oTBrowse[ nCont, TB_BLOCO_COR ]
      ENDIF
      oBrowse:AddColumn( temp )
   NEXT
E finalmente, também com FOR EACH

Código: Selecionar todos

#define TB_TITULO 1
#define TB_CONTEUDO 2
#define TB_BLOCO_COR 3

   FOR EACH oColuna IN oTBrowse
      temp := tbColumnNew( oColuna[ TB_TITULO ], oColuna[ TB_CONTEUDO ] )
      IF Len( oColuna ) > 2
         temp:ColorBlock := oColuna[ TB_BLOCO_COR ]
      ENDIF
      oBrowse:AddColumn( temp )
   NEXT
E aÍ? perdeu menos tempo no último pra entender?
Se fez diferença num fonte pequeno.... imagine num fonte grande, ou no sistema inteiro.

Facilita fazer o fonte assim? em alguns casos sim
Facilita alterar um fonte assim? sempre
Onde mais gastamos tempo? Alterando fonte....
Então é sinal de que devemos gastar tempo na criação, pra facilitar em todas as alterações.

Compare mais um pouco o primeiro e o último fonte.
Não é uma rotina complicada, é algo relativamente simples, e fez diferença.

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 10 Jun 2016 19:29
por asimoes
Quintas,

Você disse neste tópico:
Perguntaram uma vez para o que eu usava o meu jpa.ch.
Eu uso assim no hbp ou hbm

-u+hbcompat.ch

ou como sugestão

-u+jpa.ch

Não precisa colocar #include "jpa.ch" em todos os fontes

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 10 Jun 2016 20:59
por JoséQuintas
Confirme uma coisa importante, pode fazer diferença:

Quando altero o jpa.ch, na compilação incremental TODOS os fontes que o usam são recompilados.
Isso garante que será usado o de versão mais recente.

Verifique se desse jeito acontece o mesmo, senão pode ser perigoso. (apesar de eventual).

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 10 Jun 2016 21:03
por asimoes
Quintas,

Eu sempre faço -rebuild, mesmo que demore um pouco a compilação.

Fiz um teste aqui e se houver uma modificação no .ch o exe não é recompilado.

Então o ideal é usar -rebuild

Simplificando fontes - hbnfe (Harbour -w3 -es2)

Enviado: 10 Jun 2016 21:18
por JoséQuintas
Então é uma diferença entre colocar no fonte, ou indicar no hbp.
Aqui prefiro tudo no automático, pra eu não esquecer de nada... rs
Geralmente quando temos um problema é pra resolver logo, e nessas horas é que podemos acabar esquecendo do -rebuild.

No momento meu jpa.ch contém o número de versão, que é importante.

E meu aplicativo, ao criar arquivo na pasta temp, já apaga arquivos com mais de 4 horas, incluindo os da compilação.... rs

Já tive problema no servidor pela pasta temp conter muitos arquivos, por isso a limpeza.
O Windows tem limites.