Página 1 de 1
caminho das pedras?
Enviado: 01 Jul 2016 16:50
por pena
Boa tarde, preciso converter um sistema em clipper para harbour, modo console, atualmente eu utilizo harbour minigui extended, porém, lembro que não seria este harbour, alguém sabe dizer onde tem o caminho das pedras? versão, como compilar, não faço idéia de como começar.
caminho das pedras?
Enviado: 01 Jul 2016 22:12
por JoséQuintas
Se é só pra compilar, é só baixar a versão nightly, pronta pra uso.
Tem a do Harbour 3.2 e do Harbour 3.4, são distribuições diferentes, esses números não indicam versão mais nova ou mais velha.
Prefiro Harbour 3.4.
Harbour 3.4
https://github.com/vszakats/harbour-cor ... win.7z.exe
Depois que baixar e instalar, ir na pasta BIN, e digitar get-mingw
Harbour 3.2
https://sourceforge.net/projects/harbou ... e/download
Pronto pra uso.
Configurar PATHS pra \harbour\bin e \harbour\comp\mingw\bin
Confirme os nomes, conforme a instalação. É só olhar.
Não instale várias versões. Uma pode atrapalhar a outra.
Faça isso só se tiver certeza que não está misturando elas no PATH.
No mais, é começar a compilar pra ver se vai precisar algum ajuste extra.
Só pra lembrar:
Clipper é... Clipper.
LIB que não pertence ao Clipper, não é Clipper, mesmo que tenha usado pra gerar o EXE.
Algumas LIBs que não fazem parte do Clipper, tem equivalentes no Harbour.
Pode ser que compile já de primeira sem precisar mexer em nada.
Só tem um jeito de descobrir: baixar o Harbour e compilar.
De um modo geral, é usar o utilitário HBMK2.EXE que vém com ele.
Crie um arquivo com a extensão HBP com a lista de fontes.
depois é só digitar
caminho das pedras?
Enviado: 02 Jul 2016 07:32
por asimoes
Uma dica, utilize o utilitário do harbour hbformat para arrumar os fontes antes de compilar
A sintaxe é hbformat nomeprg.prg ou *.prg se houver algum erro de sintaxe ele já indica a linha
O hbformat foi criado para quem quer migrar do clipper para o harbour, vamos dizer assim, ele dá uma arrumada no fonte.
caminho das pedras?
Enviado: 02 Jul 2016 08:23
por JoséQuintas
hbformat é apenas um formatador de fonte, digamos que pra deixar o fonte "bonitinho".
Ele não está preparado pra tudo que pode existir em fontes.
Existem exceções onde ele bagunça ao invés de melhorar.
Mantenha backup, por precaução.
O uso de hbformat é opcional, não tem nada a ver com conversão de Clipper.
Nota:
Se puder usá-lo melhor, porque num fonte devidamente formatado é melhor de se trabalhar.
Mas pode fazer isso depois, a qualquer momento, fica a seu critério.
caminho das pedras?
Enviado: 02 Jul 2016 11:32
por asimoes
Quintas,
Eu fiz um teste aqui com hbformat, e ele acusa erro com try..catch..end, não entendi.
caminho das pedras?
Enviado: 02 Jul 2016 11:54
por Jairo Maia
Alexandre, Não faltou a linha: #include "hbcompat.ch"?
caminho das pedras?
Enviado: 02 Jul 2016 12:12
por asimoes
Não faltou, achei estranho.
O hbformat aponta erro no end
Reformatting .\PA000000.PRG (892 lines)
<...................Error 3 on line 516: END
Código: Selecionar todos
TRY
IF cConfigVersao != cVersao
lUpdateConfig := .T.
ENDIF
IF (nVezes > 1 .AND. !lNovoIni ) .OR. cConfigIPAddress != cIpAddServer
lUpdateConfig := .T.
ENDIF
IF lUpdateConfig
Hwg_WriteIni( 'MAIN' , 'Versao' , cVersao , hb_DirBase()+"CONFIG.INI" )
Hwg_WriteIni( 'CONFIGURACAO', 'Porta' , cPortaServer , hb_DirBase()+"CONFIG.INI" )
Hwg_WriteIni( 'CONFIGURACAO', 'IPAddress' , cIpAddServer , hb_DirBase()+"CONFIG.INI" )
Hwg_WriteIni( 'CONFIGURACAO', 'ServidorNetIO', cServidorNetIO, hb_DirBase()+"CONFIG.INI" )
ENDIF
END <------- erro ?????
caminho das pedras?
Enviado: 02 Jul 2016 12:37
por asimoes
É Quintas,
Você tem razão o hbformat faz uma bagunça, tenho um forte só com classe, ele se perdeu na indentação.
caminho das pedras?
Enviado: 02 Jul 2016 14:16
por JoséQuintas
O hbformat só formata os fontes.
Ele usa os IF/CASE/ENDIF, etc. pra se orientar se vai pra frente ou pra trás no alinhamento.
O máximo que ele pode checar é a estrutura if/endif, do case/endcase, etc.
Ele não se entendeu com o bloco TRY/CATCH, e só reconheceu o END, considerou que estava fechando alguma coisa que não foi aberta,
caminho das pedras?
Enviado: 02 Jul 2016 16:40
por asimoes
Para quem tem código puro em clipper, ele pode ajudar, agora quem já converteu é besteira usar.
O que faz falta é um que checa-se no fonte a sintaxe e aponta-se a correta utilização das funções do harbour.
caminho das pedras?
Enviado: 02 Jul 2016 19:42
por Jairo Maia
Olá Pessoal,
Alexandre, fiz um teste e troquei o END por ENDTRY e formatou o PRG. Não acusou erro e formatou, mas do jeito que vocês já disseram. No Try bagunçou tudo a formatação ao invés de arrumar...
caminho das pedras?
Enviado: 05 Jul 2016 20:44
por JoséQuintas
O TRY/CATCH é criado a partir de um arquivo .ch, não faz parte do Harbour.
Como o bloco encerra com END, END já faz parte do Harbour... por isso o hbformat entendeu que END encerrava alguma coisa: IF, DO WHILE, etc. E acabou se perdendo.
Gosto de dividir os REPLACEs, um campo por linha, e quando é continuação avanço 3 colunas.
Nesse caso o hbformat retira minha formatação.
No menu, alinho o fonte conforme o nível do menu, ele retira isso também.
Em blocos de XML, deixo o fonte formatado igual à indentação do XML, ele retira isso também.
Uso o hbformat só em fontes bagunçados, ou onde seja vantagem o seu uso.
Ele é bom, mas a quantidade de variações que podem acontecer num fonte é infinita.
Muita coisa pode ser criada/alterada por arquivos CH, teria que ser quase um compilador pra detectar tudo, e mesmo assim ainda teriam as preferências pessoais.
E pra ficar mais chato ainda.....
Não adianta deixar arquivo de configuração pra ele no Harbour, ao gerar uma nova instalação... já era a configuração.... rs
Com isso, é usar do jeito que está, aonde realmente ajudar.
caminho das pedras?
Enviado: 06 Jul 2016 15:36
por rubens
Por precaução fiz uma cópia... kkkkk
Quando o aSimoes falou, pensei, opa... aqueles fontes mais antigos do MS.exe (editor DOS com similaridades com o WordStar) vão ser todos corrigidos...
Tive problemas em uns 03 prgs na hora de compilar... Não lembro bem mas acho que Do While e Enddo na mesma linha , If e EndIf na mesma linha também... foi fácil de resolver... Mas como diz o Quintas... Não dá para ser usado de modo geral. Cautela !!!
Rubens