Página 7 de 9

Converter de Clipper para Harbour

Enviado: 11 Fev 2015 15:12
por Itamar M. Lins Jr.
Realmente é necessário o QT para o momento? Posso deixar isso para um segundo momento?
Precisa não moço, só estou sugerindo, faça o que melhor for p/ você.
Já li que tem o pacote deb do QT, deve ser mais fácil ainda.
Se eu conseguir colocar o aplicativo para rodar no terminal (modo texto) mesmo que fique bem tosco,
Não fica tosco, fica melhor do que no windows. tem o lance da transparecia no terminal, que funciona no harbour...
Uma dica, quando eu mudei p/ linux eu usava assim:

Código: Selecionar todos

@ 0,0 clear to maxcol(),maxrow()
aolado_3 := savescreen(0,0,maxrow(),maxcol())
@ row(),40 to row(),48  color 'w+/b'
janela(li-1,ci-1,lf+2,cf+2,,'w+/gb','n/gb','w+/gb',.t.)
Passei a traballhar com maxcol(), maxrow()... é bem melhor.
Lógico que o menor limite era o antigo 80x25 ou 79x24 como queiram.

Código: Selecionar todos

*************************************
Function titulo_1(tit,cor1,cor2,cor3)
*************************************
*
*
if pcount()=0
   tit=empresa_
endi
if pcount() = 1
  cor1 = "w/b,w/b"
endi
if pcount() < 2
  cor2 = "w/w"
endi
if pcount() < 3
  cor3 = "b/w"
endi

if lLinux
 hb_idledel(ntask1)
 ntask1 := hb_idleadd({||relogio(0,57,cor3)})
endi

corvelha := setcolor(cor1)

@ 00,00,maxrow(),maxcol()  box repl(" ",9)  color 'b/b'
@ 00,00 say spac(maxcol())  color cor2
@ 00,maxcol()-11            say datames(date())+' ' color cor3
@ 00,(maxcol()-len(tit))/2  say TIT color cor3
@ maxrow(),00 say spac(maxcol()+1)  color "U/gb"
@ maxrow(),00 say " MENSAGEM:"+spac(maxcol()-9) color "n/gb"
setcolor(corvelha)
return nil

Suadações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 11 Fev 2015 16:41
por aprendiz_ce
Itamar,

Se não fica tosco, então tá ótimo! Quando eu criar mais intimida com o Harbour no Linux posso ir me aprofundando e melhorando o que for possível.

Comentário:
Pra mim o Harbour no Windows 32/64 está dando super certo, pois com aplicativo pequeno não ví problema de funcionamento algum. Ajustei o IndexKey() para o IndexOrd() e tá tudo bem. Agora o aplicativo maior só vou mexer quando eu já estiver compilando o pequeno e executando o mesmo sem problemas no Linux, daí vou fazer algumas similuções de uso em ambiente corporativo.

Forte abraço!

Converter de Clipper para Harbour

Enviado: 12 Fev 2015 10:07
por aprendiz_ce
Aos Colegas,

Consegui criar o ambiente de desenvolvimento no Debian. Aparentemente está tudo certinho, pois consegui criar um "hello world", compila-lo e executa-lo sem problemas. Agora, quando tento compilar o aplicativo que anteriormente deu certo no Windows o mesmo não compila no Linux.

Dúvidas:

1) No linux tenho que levar em conta o Case Sensitive para nome de arquivos (DBF/CDX/PRG/HBP)?

2) Como fica a questão do #Include "InKey.ch" no caso do Linux?

3) Os mesmo arquivos que foram compilados no Windows não deveriam servir para compilar no Linux sem ter que altera-los, salve em casos muito específicos?

4) Como é que resolvo a exibição de caracteres ASCII corretamente? Todos os que pude testar ficam malucos!

Grato a todos a aguardo qualquer ajuda.

Converter de Clipper para Harbour

Enviado: 12 Fev 2015 11:28
por Itamar M. Lins Jr.
1) No linux tenho que levar em conta o Case Sensitive para nome de arquivos (DBF/CDX/PRG/HBP)?
"CRARO" no Linux Clientes.dbf é uma coisa clientes.dbf é outra coisa.
Eu já postei os comandos aqui p/ resolver isso.
O editor de textos que vc escolhe no windows e Linux tem que ter o mesmo comportamento não colocar CRLF no final, tem vários programas no linux p/ remover o CRLF por isso indiquei o HBIDE(viu Quintas) é Linux que o rapaz usa. Quando editar o fonte no Windows com notepad, ele coloca CRLF para mudar uma linha (descer) e no Linux apenas LF.
2) Como fica a questão do #Include "InKey.ch" no caso do Linux?

Não muda nada.
3) Os mesmo arquivos que foram compilados no Windows não deveriam servir para compilar no Linux sem ter que altera-los, salve em casos muito específicos?
Não altera/muda nada, apenas o CRLF e coloque tudo em minúsculas.
4) Como é que resolvo a exibição de caracteres ASCII corretamente? Todos os que pude testar ficam malucos!
Use slang ou nCurses.
Já postei aqui tbm o comando p/ configurar o ncurses.

Saudações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 12 Fev 2015 16:01
por aprendiz_ce
Olá Itamar,
"CRARO" no Linux Clientes.dbf é uma coisa clientes.dbf é outra coisa.
Entendido. Deu para perceber isso na prática.
Eu já postei os comandos aqui p/ resolver isso.
Realmente você postou umas configurações utilizadas por você. Eu utilizei essas configurações e aparemente não deu certo não.
O editor de textos que vc escolhe no windows e Linux tem que ter o mesmo comportamento...
Qual editor você recomendaria para uso no terminal (modo texto) que tivesse essa característica? O HBIDE quero deixar para um segundo momento.
Não muda nada.
Entendido. Agora resolvi. Estava escrito em maiúsculo, passei para minúsculo e fico certinho.
Não altera/muda nada, apenas o CRLF e coloque tudo em minúsculas.
Entendido. Então vou manter tudo em minúsculo.
Use slang ou nCurses.
Já postei aqui tbm o comando p/ configurar o ncurses.
"Use slang ou nCurses". Mas como? Não entendi! Você quer dizer para instalar esses pacotes, seria isso ou algo mais? Sempre olho tudo que você me passa, mas nesse caso não devo ter visto e vi não entendi.

Estou com mais dois probleminhas:

1) O meu Harbour (Linux) não está reconhecendo hb_settermcp(). Por que será?

2) Ao indexar os arquivos os registros sumiram. Por que? Uso "bolsa de indices" com DBF/CDX.

Dúvida:

Tenho que manter uma compatibilidade entre os clientes Linux e Windows com relação as tabelas (DBFs) e seus indices. Pra isso quero deixar os DBFs e os CDXs em maiúsculo. Se eu utilizar set FileCase() ficará certinho? No meu caso aonde os clientes diferentes (OS) vão manipular os registros (DBF/CDX) não haverá perda de registro e nem quebra de indices, correto? Posso ficar tranquilo?!

Converter de Clipper para Harbour

Enviado: 15 Fev 2015 09:53
por Itamar M. Lins Jr.
Qual editor você recomendaria para uso no terminal (modo texto) que tivesse essa característica?
mcedit
http://pt.wikipedia.org/wiki/Mcedit
Eu utilizei essas configurações e aparemente não deu certo não.
Coloque seu código que não deu certo, coloque o erro, outras pessoas podem se beneficiar quando for passar por esse caminho.

1) O meu Harbour (Linux) não está reconhecendo hb_settermcp(). Por que será?
Mostre o seu código e o erro se tiver.

2) Ao indexar os arquivos os registros sumiram. Por que? Uso "bolsa de indices" com DBF/CDX.
Mostre o seu código e o erro se possível. Se sumiram no Linux vai sumir no windows tambem, o Przemek usa Linux como padrão, ele faz tudo no Linux p/ depois usar no windows. Przemek é o responsável pelo Harbour.
Se eu utilizar set FileCase() ficará certinho? No meu caso aonde os clientes diferentes (OS) vão manipular os registros (DBF/CDX) não haverá perda de registro e nem quebra de indices, correto? Posso ficar tranquilo?!
Como vc vai liberar p/ seus usuários usarem o aplicativo no Windows e Linux ?

Saudações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 15 Fev 2015 11:34
por aprendiz_ce
Olá Itamar,
Beleza. É esse mesmo que estou utilizando no momento.
Mostre o seu código e o erro se tiver.
Não tem nada demais no código não. Apenas coloquei dentro da Function Main() um hb_settermcp([LINUX],[CP850]) (conforme recomendações postadas aqui pelo colega anteriormente) e compilo normalmente, daí quando executo o aplicativo (Linux) retorna o seguinte erro: "Error BASE/1302 Argument error: HB_SETTERMCP". Seria esse o erro que comentei.
Mostre o seu código e o erro se possível. Se sumiram no Linux vai sumir no windows tambem, o Przemek usa Linux como padrão, ele faz tudo no Linux p/ depois usar no windows. Przemek é o responsável pelo Harbour.
Eu tinha me pedido com relação ao Case Sensitive para nome de arquivos, daí como eu tinha arquivos (DBF/CDX) tanto maiúsculos como minúsculos deve ter dando alguma problema. Revisei tudo colocando todos em maiúsculo para dar uma compatibilidade melhor com a versão para Windows e para o momento está dando certo. Ah, também passei a utilizar set FileCase().
Como vc vai liberar p/ seus usuários usarem o aplicativo no Windows e Linux ?
Crio dois aplicativos com compilações diferentes (Windows/Linux) e nomes diferentes, coloco todos os arquivos DBFs, CDXs e EXEs em um mesmo diretório/pasta e dou acesso aos clientes Linux e Windows para o seus respectivos executáveis. Fiz alguns testes nesse meio tempo em um ambiente misto (Win XP, Win7, Win8, Linux) e parece que deu certo.

Mestre, e o que faço com a questão dos caracteres malucos, ou seja, os códigos ASCII que tenho por todo o projeto? Não entendi a sua recomendação de "sLang e nCurses"... Faço o que exatamente? Só instalo e pronto?! Mexi, mexi, pesquisei, pesquisei, mas não sai do lugar com relação a isso.

Mais uma vez obrigado pela sua valiosa atenção e me desculpe por fica te enchendo o saco (rs) com essas coisas...

Forte abraço!

Converter de Clipper para Harbour

Enviado: 15 Fev 2015 11:45
por Itamar M. Lins Jr.
"Error BASE/1302 Argument error: HB_SETTERMCP"
É como eu expliquei, eu não estou mais acompanhando o LINUX por enquanto...
Teste ai:

Código: Selecionar todos

dentro da main
hb_setcodepage("ptiso")
hb_settermcp("ptiso", " ptiso",.t.) // se nao funcionar troque para
hb_settermcp("linux","acsc")

e antes de executar a app
export HB_TERM=$TERM/acsc
Saudações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 15 Fev 2015 11:52
por Itamar M. Lins Jr.
Mestre, e o que faço com a questão dos caracteres malucos, ou seja, os códigos ASCII que tenho por todo o projeto? Não entendi a sua recomendação de "sLang e nCurses"... Faço o que exatamente? Só instalo e pronto?! Mexi, mexi, pesquisei, pesquisei, mas não sai do lugar com relação a isso.
Respondido no post acima... continuando..

Uma explicação sobre a função hb_settermcp; Ela acessa no harbour o mapa de caracteres a serem exibidos conforme o tipo de terminal usado.
https://github.com/vszakats/harbour-cor ... harmap.def

Saudações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 16 Fev 2015 13:31
por aprendiz_ce
Itamar,

Segui tudo que me foi recomendado, mas não ficou totalmente certo. Quando executo o aplicativo no terminal do ambiente gráfico fica na mesma. Se vou para o terminal modo texto fica certo, apenas dois caracteres ASCII permanecem malucos, só que dá pra passar. Percebi que quando maximizo no terminal gráfico o aplicativo não maximiza. Existe algum comando "mágico" para o Linux como o "REQUEST GT_WVT_DEFAULT" do Windows que resolva isso?

Converter de Clipper para Harbour

Enviado: 16 Fev 2015 14:14
por Itamar M. Lins Jr.
Veja se esses posts aqui resolvem seu problema.
https://pctoledo.org/forum/viewto ... 47&t=15838

Use o konsole como terminal e faça os ajustes.

Saudações,
Itamar M. Lins Jr.

Converter de Clipper para Harbour

Enviado: 17 Fev 2015 13:10
por aprendiz_ce
Veja se esses posts aqui resolvem seu problema.
viewtopic.php?f=47&t=15838
Entendido. Então para Linux não existe aquele comando "mágico"...
Use o konsole como terminal e faça os ajustes.
Me desculpe, mas não tenho como utilizar Konsole pois uso GNome. Que ajustes são esses? Já mexi em tudo, mas quando maximizo o aplicativo não se ajusta dentro do terminal, ou seja, fica do mesmo tamanho.

Converter de Clipper para Harbour

Enviado: 17 Fev 2015 13:11
por aprendiz_ce
Veja se esses posts aqui resolvem seu problema.
viewtopic.php?f=47&t=15838
Entendido. Então para Linux não existe aquele comando "mágico"...
Use o konsole como terminal e faça os ajustes.
Me desculpe, mas não tenho como utilizar Konsole pois uso GNome. Que ajustes são esses? Já mexi em tudo, mas quando maximizo o aplicativo não se ajusta dentro do terminal, ou seja, fica do mesmo tamanho.

Me apareceu outro problema para o momento: Fui compilar o aplicativo grande (ERP) para Harbour for Windows e apesar de todos os fontes estarem presentes o compilador avisa vários como "assumed external". Andei retirando alguns "DO"s para a chamada de subrotinas e colocando chamada como funções com "()" e parece que dá certo, mas tenho umas procedures com parametros passados com "with" e nesse caso não deu certo. Como faço nesses casos?

Converter de Clipper para Harbour

Enviado: 17 Fev 2015 13:54
por JoséQuintas
Revendo os posts encontrei este:
meu aplicativo hoje em dia roda no Windows/32 normalmente e no Linux de forma emulada. Quero dar um "Up" no mesmo e com isso deixa-lo rodando no Windows/64 e se possível no Linux também, mas utilizando os mesmos fontes. Agora, se for para manter dos fontes distintos penso que para mim não seria viável, mas se o mesmo puder rodar no Linux de forma emulada, já me atenderia. Que emulador eu poderia usar, o colega saberia me dizer?
Já tentou usar o aplicativo pelo wine?
Há muito tempo atrás rodei programas em VB normalmente com wine no Linux.
Resolveria seu problema mais rápido, e teria mais tempo pra pesquisar.
Dependendo do Linux já vém pré instalado.

Aliás, se houverem outros aplicativos Windows na empresa, o wine seria interessante pra isso também.
É questão de testar, não sei dizer no uso prático, porque não faz parte do meu dia a dia.
A parte gráfica Windows também funciona neste emulador.

Converter de Clipper para Harbour

Enviado: 17 Fev 2015 14:17
por Itamar M. Lins Jr.
e parece que dá certo, mas tenho umas procedures com parametros passados com "with" e nesse caso não deu certo. Como faço nesses casos?
Moço, coloque aqui o seu código. Porque não deu certo ?

Quintas o emulador Wine é pior(mais difícil) do que usar Linux. Não inventa, porque o Harbour roda macio no Linux, o problema é que o pessoal ainda não tem tempo de uso no LINUX.
Tem coisas que só com o tempo p/ aprender, já que é preciso ler muito.
Se for usar Wine melhor comprar o Windows por 600,00 reais ou usar XP e deixar Linux de lado.
Wine vc perde as coisas do Linux, o pessoal usa Wine p/ jogos, etc.. coisas que tinha no Windows XP. O Harbour funciona nativo no Linux, para quê Wine ?

Se fosse tudo num passe de mágica tudo igual não precisaria mudar, o OS LINUX é diferente do Windows é outra cultura. Por isso quem entende prefere Linux ao Windows. O Przemek usa LINUX como OS primário, então o Harbour funciona maravilhosamente no Linux.

As respostas p/ algumas perguntas daqui estão em outros lugares, tem que ler, estudar, postar o código, mensagens de erros... queixas aqui não resolvem nada.

Saudações,
Itamar M. Lins Jr.