Página 5 de 18
Migrar Clipper para Harbour.
Enviado: 25 Jul 2014 23:39
por AvalonTN
Boa Noite amigo Toledo!
em Resposta a suas perguntas:
1) - A pasta que instalei o Harbour foi em C:\Harbour32
2) - é o único local de instalação.
3) - Tanto pelo atalho como pelo prompt do DOS.
4) - o SETARHB.BAT encontra-se na área de trabalho.
5) - após o click duplo o resultado do set path é:
-------------------------------------------
Microsoft Windows [versão 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Todos os direitos reservados.
D:\>set path
Path=C:\Harbour32\bin;C:\Harbour32\mingw\bin;C:\Program Files (x86)\Adobe;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPow
erShell\v1.0\
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
D:\>
-------------------------------------------
abaixo o meu SETARHB.BAT
@echo off
SET PATH=C:\Harbour32\bin;C:\Harbour32\mingw\bin;%PATH%
SET HB_COMPILER=mingw
cd\
%SystemRoot%\system32\cmd.exe
e como eu disse, quando compilei através da linha de comando o executável foi criado.
somente deu pau através do hbmk2 CPRG.HBP no qual saiu aquela mensagem que postei.
não ligo de compilar através de linha de comando, o problema é saber como, visto que estou ainda a aprender esta nova linguagem, por isso pergunto:
como faria para compilar um sistema que contem por volta de 22 PRG.
eu teria que digitar todos os nomes na linha de comando?
fico no aguardo
e já agradeço amigo...
Migrar Clipper para Harbour.
Enviado: 26 Jul 2014 00:24
por Toledo
AvalonTN escreveu:3) - Tanto pelo atalho como pelo prompt do DOS.
O certo é sempre executar o atalho do SETARHB.BAT que está na sua área de trabalho e usar o prompt do DOS que será aberto para compilar os seus programas.
AvalonTN escreveu:somente deu pau através do hbmk2 CPRG.HBP no qual saiu aquela mensagem que postei.
Então provavelmente o problema está no arquivo
CPRG.HBP, verifique se neste arquivo está relacionado apenas o
TELA.PRG mesmo, pois pela mensagem de erro, indica que tem outros PRG. Parece que tem várias linhas com apenas
.PRG (sem o nome do arquivo).
Abraços,
Migrar Clipper para Harbour.
Enviado: 26 Jul 2014 10:23
por JoséQuintas
Não deu pra perceber se baixou o Harbour 3.0 ou 3.2.
Baixe lá do site, a versão Harbour Nightly, que é a mais recente, porque é ligeiramente diferente da 3.0, e vai ser mais fácil de conseguir ajuda.
Supondo que instale na pasta c:\hb32, basta SET PATH=c:\hb32\bin
Pra compilar, estilo clipper:
- pra projetos pequenos pode colocar tudo numa única linha.
- pra projetos maiores, melhor criar um arquivo HBP
No arquivo.hbp:
- lista de fontes, um por linha
- se usar bibliotecas adicionais, por exemplo gtwvg, adicionar gtwvg.hbc
ficaria assim:
e compilar usando hbmk2 essearquivo.hbp
ou se usar sem hbp:
hbmk2 fonte1.prg fonte2.prg gtwvg.hbc -m -w0 -es0
Migrar Clipper para Harbour.
Enviado: 26 Jul 2014 13:34
por AvalonTN
bom dia!!!
caro amigo Toledo, venho comunicar que consegui o feito de compilar meu pequeno sistema.
e claro, graças a grande ajuda recebida de vc que verificou que o erro seria no arquivo .HBP
com base nesta informação resolvi baixar um outro editor de texto, vendo que o tal de notepad estava incluindo algo que
estaria dando tal erro, com isto consegui sanar a zica de compilar através do .HBP
e deixar tb agradecimentos ao amigo JoséQuintas que de bom grado cedeu-me umas dicas que me ajudaram tb a compilar o sistema tb em modo linha de comando.
e em resposta a sua pergunta JoséQuintas, a versão instalada é esta mesma que vc me indicou Harbour Nightly 3.2
demorei um pouco a responder pois estava a verificar, porque após tantas instalações, queria ter certeza do que possuia, visto que fiquei perambulando por versões de xharbour e Harbour
IDE´s e linha de comando, instalei xEdit, xailer xdevStudio mais sempre sem finais felizes, mais graças a ajuda de vc´s, posso recomeçar a programar e recordar dos tempos passados.
fico muito grato a todos, e não pensem que vou desaparecer, pois a vida é um eterno aprendizado e sei que ainda tenho muito o que aprender, mais tb no que for possível gostaria tb de ajudar.
estarei sempre atento.
Abraços, felicidades, e bom Sábado a Todos.
OBS:
outra coisa, não tô por dentro de como postar imagens no forum, poderiam incluir esta aulinha ae rsrsrsrs
----------
JAir P. Jr
Migrar Clipper para Harbour.
Enviado: 26 Jul 2014 13:47
por Toledo
AvalonTN escreveu:outra coisa, não tô por dentro de como postar imagens no forum, poderiam incluir esta aulinha ae rsrsrsrs
Veja este tópico:
https://pctoledo.org/forum/viewto ... =40&t=8418
Veja também a seção
Regras e Comunicados que tem outros tópicos sobre o funcionamento do fórum.
Mas que bom que deu certo, então seja bem-vindo ao mundo Harbour.
Abraços,
Migrar Clipper para Harbour.
Enviado: 04 Ago 2014 13:10
por Trazom
Ola amigos,
Finalmente venho comunicar a voces que de fato, dessa vez sem retorno, vou aderir ao harbour.
Ja estou fazendo as telas do meu ERP com minigui. Comecei a semana passada e ja trabalhei umas 80horas e ja decidi que agora vou fazer mesmo o sistema usando harbour,minigui,dbfcdx, estou passando pelos problemas iniciais de uso dos objetos mas ja consegui andar bastante, visto que desde 2004 eu tentava sem exito.
Quero agradecer a todos que fazem o forum e agradecer antecipadamente pelas duvidas que vou resolver aqui. Nesse primeiro momento to fazendo as telas de cadastro ja gravando nos mesmo dbfs e indices, to fazendo a conversao na unha mesmo escrevendo os objetos um a um, acho isso fundamental pra que eu tenha confiança pois dessa forma, me sinto com o dominio do sistema tal qual era com clipper puro.
Após diversas tentavias de usar a harbour (comecei com a versao 0.9) acho que o que foi fundamental pra eu tomar essa decisao foi ter aprendido OOP, e em segundo lugar ter estudado espanhol no ultimo ano, pois sempre me deparava com material didatico nessa lingua.
No momento preciso criar uma forma padrao pra dar entrada nos dados tipo chave estrangeira por exemplo cadastro de contas correntes - informar codigo do banco, entao tem que aparecer uma lista dos bancos e também permitir informar somente o código, então minha dúvida é que tipo de objeto é mais interessante usar nesse caso, ja tentei com listbox, combobox e também com o comboboxsearch mas ainda não consegui fazer como eu quero.
Bom, a partir de agora vou postando minhas duvidas
Obrigado a todos
Migrar Clipper para Harbour.
Enviado: 25 Ago 2014 20:59
por portelainfo
Boa noite a todos!
Acabei de fazer a troca do xHarbour 1.2.2 para o Harbour 3.2. Segui os passos que o Toledo passou para o Mauricio Elias. Tudo ocorreu normalmente. O Sistema foi compilado.
Encontrei alguns problemas com:
- Menu: TopBarMenu() -> HBTopBarMenu()
- SWITCH -> CASE
Mas, resolvi sem muito trabalho!
Agora, estou com problema na verificação de um arquivo com atributo +H. No xHarbour funcionava com a função FILE().
Segue fragmento do código:
Código: Selecionar todos
...
// Este arquivo esta escondido com +H do comando ATTRIB do DOS.
cArquivo := "c:\outrodir\meuarq.mp"
if !file(cArquivo)
alert("Arquivo não encontrado!")
else
alert("Arquivo ok!")
endif
...
Após compilar com o Harbour 3.2 e rodar, ele entende que o arquivo não exista e acaba executando a primeira condição do IF.
Gostaria de uma ajuda dos Srs.
Att.
Mauricio Portela
Migrar Clipper para Harbour.
Enviado: 25 Ago 2014 22:28
por Jairo Maia
Olá Mauricio Portela,
Em Harbour e xHarbour tem as funções:
FileAttr( <cFileName> ) => Retorna os atributos do arquivo;
SetFAttr( <cFileName>, [<nAttributes>] ) => altera os atributos do arquivo.
Porém, nunca consegui usar em Harbour (nunca usei em xHarbour), pois se o arquivo tem atributo +H ou +S, estas funções não enxergam o arquivo.
A única forma que encontrei para isso foi usando a função Directory(), e verificando o atributo:
Código: Selecionar todos
aFile := Directory( cFile, "RHS" )
If Len( aFile ) > 0 .And. ( "S" $ aFile[1,5] .Or. "H" $ aFile[1,5] .Or. "S" $ aFile[1,5] )
Hb_Run( "Attrib " + cFile + " -H -S " ) // ou outro tratamento...
EndIf
No seu caso, teste desta forma que funciona (mas se alguém tiver alguma forma melhor, eu também adotaria):
Código: Selecionar todos
if Len( Directory( cFile, "HS" ) ) = 0
alert("Arquivo não encontrado!")
else
alert("Arquivo ok!")
endif
Migrar Clipper para Harbour.
Enviado: 25 Ago 2014 23:19
por portelainfo
Jairo Maia,
Boa noite!
A verificação do arquivo funcionou com a função Directory() aqui!
Muito obrigado!
Migrar Clipper para Harbour.
Enviado: 26 Ago 2014 18:43
por Itamar M. Lins Jr.
Ola!
Eu uso assim:
Código: Selecionar todos
If SetFAttr('\abcd\abc.txt',2) = 0
? 'arquivo encontrado'
Else
? 'arquivo não encontrado'
EndIf
Saudações,
Itamar M. Lins Jr.
Migrar Clipper para Harbour.
Enviado: 26 Ago 2014 18:50
por Itamar M. Lins Jr.
Segundo Viktor, melhor usarmos
if hb_FileExists('c:\dir001\arq001.txt')
? 'arquivo encontrado'
endif
Saudações,
Itamar M. Lins Jr.
Migrar Clipper para Harbour.
Enviado: 27 Ago 2014 10:21
por Jairo Maia
Muito Bom!
Na versão 3.0 a função
FileAttr() ainda não funcionava, mas a partir da versão 3.2 todas funcionam.
Apenas lembrando que a função
SetFAttr() seta apenas um atributo. No exemplo abaixo, a rigor o arquivo deveria ser setado como Read Only, Hidden e System, mas apenas o último é setado, ou seja, apenas System:
Código: Selecionar todos
Function Main()
If !File( "Teste.Txt" )
Hb_MemoWrit( "Teste.Txt", "Teste de Atributos" )
EndIf
SetFAttr( "Teste.Txt", 124 )
If Hb_FileExists( "Teste.Txt" )
Hb_Alert( "Encontrado" )
Else
Hb_Alert( "Não Encontrado" )
EndIf
cAtributes := FileAttr( "Teste.Txt" )
Hb_Alert( Hb_ValToStr( cAtributes ) )
If cAtributes != 0 .And. cAtributes != 32
SetFAttr( "Teste.Txt", 32 )
endif
cAtributes := FileAttr( "Teste.Txt" )
Hb_Alert( Hb_ValToStr( cAtributes ) )
FileDelete( "Teste.Txt" ) // apaga o arquivo independente do(s) atributo(s)
Return Nil
Migrar Clipper para Harbour.
Enviado: 27 Ago 2014 13:31
por rlira
Prezados boa tarde.
Estou tentando compilar com o Harbour mais estou encontrando um problema, no inicio em que eu fui inserindo os arquivos .prg apos revisa-los ( retirando as instruções DO e etc... ) estava indo tudo bem, então chegou a vez em que um .prg que na verdade é um arquivo em que tenho funções e procedures personalizadas na compilação aparece a mensagem "multiplas definições" , bem não estou conseguindo prosseguir os senhores teriam alguma dica?
Migrar Clipper para Harbour.
Enviado: 27 Ago 2014 19:33
por Jairo Maia
Olá rlira,
Isso provavelmente deve ser porque você está redefinindo algumas funções reservadas do Harbour, acho que ficaria mais fácil opinar se você colocasse quais são essas funções que o linkador está acusando como já definidas, bem como quais libs você está linkando.
Migrar Clipper para Harbour.
Enviado: 27 Ago 2014 21:25
por rlira
Olá Jairo boa noite.
Prezado obrigado pela sua comunicação, bem então o que eu pude obter a partir dai foi
na compilação vejo mensagens
SAOBIB.c:(.text+0x800): multiple definition of 'HB_FUN_EXPLODBX'
SAO.c:(.text+0xb80): first defined here
SAOBIB.c:(.text+0x820): multiple definition of 'HB_FUN_XCONFIRMA'
entre outras mensagens
então pesquisei usando o ts e achei
no arquivo SAOBIB.prg uma procedure
**********************
procedure EXPLODBX
parameters topo, esquerda, ......
Observacao achei a chamada desta procedure em outro prg mais só a chamada desta procedure
pesquisei pelo ts e achei no SAOBIB.prg uma funcao
*************************************************************
function xconfirma( texto )
*************************************************************
corpo da função
o arquivo para compilar é o c.hbp e seu conteudo é um espelho do que eu encontrei aqui no grupo exemplo
-inc
-gui
-quiet
-oSIGC
-lxhb
-lhbct
-lhbwin
depois vem os prg