caminho das pedras?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

caminho das pedras?

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

caminho das pedras?

Mensagem 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.

Código: Selecionar todos

--arquivo.hbp
fonte1.prg
fonte2.prg
-m
depois é só digitar

Código: Selecionar todos

hbmk2 arquivo.hbp
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

caminho das pedras?

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

caminho das pedras?

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

caminho das pedras?

Mensagem por asimoes »

Quintas,

Eu fiz um teste aqui com hbformat, e ele acusa erro com try..catch..end, não entendi.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

caminho das pedras?

Mensagem por Jairo Maia »

Alexandre, Não faltou a linha: #include "hbcompat.ch"?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

caminho das pedras?

Mensagem 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 ?????
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

caminho das pedras?

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

caminho das pedras?

Mensagem 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,
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

caminho das pedras?

Mensagem 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.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

caminho das pedras?

Mensagem 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...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

caminho das pedras?

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

caminho das pedras?

Mensagem 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
"Eu e minha casa servimos ao Senhor e você ???"
Responder