Página 12 de 18

Migrar Clipper para Harbour.

Enviado: 24 Mar 2016 20:38
por CMartins
Segunda tentativa de anexar a imagem da tela...

Migrar Clipper para Harbour.

Enviado: 24 Mar 2016 21:28
por JoséQuintas
Tente acrescentando pra mostrar mais informações:

Código: Selecionar todos

hbmk2 hbvd2 -info
Nota: Existe a compilação incremental, aonde somente o que foi alterado é recompilado. Se nada foi alterado, não precisa compilar, e nada é feito.
Se for isso, pra forçar recompilação: (só pra curiosidade, já que não precisaria)

Código: Selecionar todos

hbmk2 hbvd2 -rebuild

Migrar Clipper para Harbour.

Enviado: 26 Mar 2016 16:36
por CMartins
Olá José

Grato pelo apoio e pelas informações!
Depois de fundir a cuca e fazer inúmeras loucuras descobri que o HB_INSTALL_PREFIX não estava setado...
Aí foi só acrescentar o comando SET HB_INSTALL_PREFIX:=C\hb32 no meu sh.bat (listado acima) e tudo voltou ao normal.
Só continuo sem entender porque antes funcionava sem este SET e agora necessito dele!?

Como teve um técnico fazendo manutenção (limpeza) na minha máquina no início da semana passada, estou colocando tudo na conta dele...
Estarei sendo injusto?

Abs
Carlos

Migrar Clipper para Harbour.

Enviado: 26 Mar 2016 16:51
por JoséQuintas
Pode ser que antes tinha isso no set path do Windows.

No Harbour 3.4 isso foi corrigido, porque HB_INSTALL_PREFIX é para a geração do Harbour, e não para o uso.
Mas no Harbour 3.2 isso continua.

Migrar Clipper para Harbour.

Enviado: 26 Mar 2016 21:56
por sygecom
CMartins escreveu: Só continuo sem entender porque antes funcionava sem este SET e agora necessito dele!?

Como teve um técnico fazendo manutenção (limpeza) na minha máquina no início da semana passada, estou colocando tudo na conta dele...
Estarei sendo injusto?
Carlos,
É muito importante um programador conhecer todo seu ambiente de trabalho, lamento mas a conta é sua....

Migrar Clipper para Harbour.

Enviado: 01 Out 2016 23:28
por JackSmith
Aproveitando aqui as dicas dos companheiros para conversão de programas Clipper para Harbour, consegui compilar o sistema SAO para rodar em modo console no Windows 7 64bits.

Criei o arquivo SETARHB.BAT sugerido no tutorial no inicio do tópico pelo Toledo, apenas inclui o comando "MODE CON LINES=25 COLS=80" para não ter que ficar buscando a tela do programa com a barra de rolagem, a configuração do console window é bem diferente da utilizada pelo padrão MS-DOS
@echo off
set path=C:\hb30\bin;C:\hb30\comp\mingw\bin;%path%
set HB_COMPILER=mingw
cd\
MODE CON LINES=25 COLS=80
%SystemRoot%\system32\cmd.exe
Arquivo: SAO.HBP
-oSAO.EXE
-w0
-es2
-rebuild

SAO
SAOMENU
SAOBIB
SAOUTI
SAOFOR
SAOCLI
SAOPRO
SAOREP
SAOOPE
SAOCTB
SAOTAB
SAOPED
SAOIND
SAOCOM
SAOTRA
SAOVEN
SAONF
SAOPXF
SAOCR
SAOCP
SAOFLU
SAOMBA
SAOCTO
SAOFCH
SAOUSU
Não foi preciso fazer nenhuma alteração no código, apenas compilei e o sistema parece estar funcionando perfeitamente.


Migrar Clipper para Harbour.

Enviado: 04 Out 2016 14:59
por Nalotro
Estou iniciando com harbour, bom, consegui já alguma coisa porém estou com um pequeno problema que é o seguinte:
no clipper tem a instrução setcursor(0) ele não mostra o cursor quando aciono um get: @ say "Digite sua senha..." get cs1 "@!" colordisp(corc), "corc" é azul igual a tela do fundo e não aparece o cursor, mas no harbour aparece o cursor é o que não quero, como resolver isso ?
Para tanto estou anexando os dois prgs, em harbour tive que fazer pequenas alterações para rodar.
Estou usando o editor notpad ++, tem um ícone chamado linguagem, no qual posso mudar o tipo de linguagem, coloquei senhahb como harbour e senhacl como clipper. Não consegui anexar o .DBF, o nome é PARAMET1, com tres campos: cor1 = W ; cor 2 = B e cor3 = N

Migrar Clipper para Harbour.

Enviado: 04 Out 2016 16:34
por Jairo Maia
Olá nalotro,

Em Harbour funciona sim. Talvez a diferença é que Clipper aceite essa sintaxe: setcursor (0), ou seja, espaços entre o nome da função e os parênteses que irá passar o parâmetro. Mude para sem espaços:

Código: Selecionar todos

SetCursor(0)
Deve funcionar normalmente.

Migrar Clipper para Harbour.

Enviado: 04 Out 2016 16:38
por JoséQuintas
Testei aqui.
A getsys do Harbour não obedeceu o SET CURSOR OFF.
Um jeito rápido seria usar a getsys do Clipper.

Migrar Clipper para Harbour.

Enviado: 04 Out 2016 17:22
por Toledo
Amigos, se é Harbour, então use a função GetSecret():

Código: Selecionar todos

   PROCEDURE Main
      LOCAL cPassword := Space(20)
      CLS
      SET CONFIRM ON

      cPassWord := GetSecret( cPassword, 10, 10, .T., "Enter your password: ")

      IF cPassWord <> "xHarbour"
         Alert( "Access denied" )
         QUIT
      ENDIF

      Alert( "Access granted" )
   RETURN
Abraços,

Migrar Clipper para Harbour.

Enviado: 29 Nov 2016 14:39
por freddyd
Não é um grande problema, mas .... os caracteres ã õ funcionam ok no display (80 x 25) quando compilado com xHarbour 1.2.3 e bcc 5.8.2

Quando compilei com Harbour 3.2.0 / mingw o ç esta ok mas não o ã õ , fora disso tudo parece ok.

O que posso fazer ?

Freddy

Migrar Clipper para Harbour.

Enviado: 29 Nov 2016 21:37
por JoséQuintas
Primeiro ponto, importantíssimo: muita calma nessa hora.

Está entrando em uma área delicada.

Até hoje achava que existia uma única tabela ASCII, que o Chr(65) corresponde à letra A, que Asc( "A" ) é 65, e que funciona assim pra tudo que é caractere no computador.
Também até hoje achava que a diferença entre caracteres era entre DOS e Windows.
Pois é... não é assim que funciona.

Existe uma tabela ASCII pra cada idioma existente: Inglês, Português de Portugal, Português do Brasil, e muitas outras.
A janela de prompt, chamada de DOS, usa tabela em inglês.
O Windows, usa tabela em português-Brasil (no nosso caso).
E tem outras mais.

Antes de adotar uma solução precisa saber que:

- O que gravou nos seus bancos de dados, usou a tabela em inglês
- Se seu aplicativo estiver em modo console, o Windows vai usar a tabela em inglês pra TELA
- Se seu aplicativo usar tela Windows, o Windows vai usar a tabela em português-Brasil pra TELA
- Caracteres especiais do seu aplicativo, estarão usando tabela em inglês

E mais outra: SEU FONTE
Vai ter que usar um editor de textos compatível, seja inglês ou português-Brasil.

O que usei foi o seguinte: português-Brasil pra tudo, e tela GTWVG - Windows.
E não permito acentuação por parte do usuário, pra não criar mais problemas.
A partir daí, acertar diferenças de DBFs, telas, relatórios, etc. usando um editor de textos que trabalhe em português-Brasil.
Pode usar funções de conversão, mas é bom entender direito tudo que vai precisar ser alterado.

Isso é chamado de CODEPAGE.
Isso existe desde os tempos do DOS, a gente alterava isso usando o COUNTRY.SYS
O Clipper também tinha opção de escolher codepage, mas pelo menos eu NUNCA usei isso.

Sem falar que tem também o UTF-8, que não tem nada a ver com as anteriores.
Mas gera novas complicações, porque uma letra pode ser formada por até 6 caracteres juntos.

Bem vindo ao mundo da CODEPAGE.
É decidir o que vai usar, e ir em frente.

Acho que usando português-Brasil, que é a mesma do Windows, pode evitar complicações.
Se alguém souber de algo que eu desconheça, é só avisar.

Nota: Talvez tenha que usar uma LIB Windows, já que o Harbour é Windows, mesmo que não use recursos gráficos.

Migrar Clipper para Harbour.

Enviado: 30 Nov 2016 13:57
por freddyd
OK, acho que entendi: o que acontece é sua última frase: "já que o Harbour é Windows, mesmo que não use recursos gráficos" ... e o xHarbour não. Por isso, que com as mesmas fontes e dbf no mesmo computador, da certo com xHarbour e não com harbour.
Então eu teria que mudar minhas fontes .prg + strings em .dbf etc.. bwaaaa em resumo vou deixar assim por enquanto !

Migrar Clipper para Harbour.

Enviado: 30 Nov 2016 16:08
por JoséQuintas
Vamos de outra forma:
Vai ter que decidir se o seu aplicativo vai ficar bem no modo console ou no modo Windows.
Console: EUA, Windows PT-BR.
A partir dai, ver as opções.

Migrar Clipper para Harbour.

Enviado: 02 Dez 2016 13:32
por freddyd
no xHarbour 1.2.3 eu uso as funções :

vetor:=GetPrinters(.T.) para obter uma lista de impressoras disponíveis no windows, em forma de vetor contendo os nomes das impressoras
SET PRINTER TO (GetDefaultPrinter()) para imprimir na impressora padrão
SET PRINTER TO (vetor[1,1]) para imprimir na primeira impressora da lista do vetor por exemplo

No Harbour 3.4.0 + mingw compilei, não da erro nenhum nem na compilação nem ao imprimir, mas não imprime nada !

O que tem de errado ?