Prezados Senhores clipper apaixonados como eu.
Bom, programo em clipper/dbase iii desde 1990. Só que comecei oficialmente meu primeiro projeto profissional em 1998 intitulado SiCCA (Sistema de Controle Comercial Avançado). Durante os primeiros 5 anos foram para fazer com que ele fosse aceito no mercado.
Só que como nós sabemos, ficamos ultrapassados no velho e bom amigo clipper, por falta de uma LIB que realmente funcionasse "mouse", problemas com os ambientes win xp que surgiram em 2002. E a concorrência com outras linguagens mais modernas e principalmente as empresas que já estavam estabelecidas no mercado com vários programadores e vendedores/revendedores na praça, fizeram com que eu (infelizmente) ficasse garrado aqui com o pouco que sei do clipper.
Agora chega de tanto blá blá blá e vamos ao que todos nos interessamos (migrar de clipper pra harbour/xharbour). Há 2 anos um amigo que conheci aqui pelo fórum (Eolo Ventura) me deu algumas dicas e até me mandou uns PRGs para facilitar a migração.
Como tive que fazer um aplicativo para uma oficina mecânica, parei a migração e estou retornando agora novamente em 2014.
Bom, vi algumas observações de toda a internet, baixei essas IDEs (como dissse alguém aqui) são realmente complexas (pra gente que é leigo no assunto POO).
Pensava eu que HARBOUR e XHARBOUR eram a mesma coisa ou seja, HARBOUR veio para migrar 16 bit p/ 32 e manter o console visual/MSDOS 16 cores, etc, e xHARBOUR foi a evolução com imagens visuais como em DELPHI/C++/JAVA, etc com IDE e ambiente POO.
Mas, alguém aqui me deixou essa dúvida que gostaria (se possível) ser esclarecida.
Agora, vamos às maiores dúvidas.
Eu compilo e linkedito meus PRGs usando basicamente 2 coisas:
1ª - para facilitar a programação e ficar mais estruturada uso um GERADOR DE PROGRAMAS CLIPPER da Squadra(BH/MG) chamado SCULPTOR na última versão comercializada: 3.331;
2ª - compilo e linkedito, fazendo quase a mesma coisa que o colega autor dessas dúvidas faz; só que usando o EXOSPACE. Considerando que meu arquivo principal é o PCI10000.PRG, no clipper faço assim através de 3 outros arquivos:
CL.BAT que contém o seguinte conteúdo:
*=======
@ECHO OFF
..\clipper5\bin\RMAKE PCI10000
..\clipper5\bin\EXOSPACE @PCI10000
*=======
PCI10000.RMK, com os seguintes dados:
*=======
PCI10000.OBJ: PCI10000.PRG GCI10000.CH
CLIPPER PCI10000 /M
PCI10001.OBJ: PCI10001.PRG GCI10000.CH
CLIPPER PCI10001 /M
PCI10002.OBJ: PCI10002.PRG GCI10000.CH
CLIPPER PCI10002 /M
PCI10003.OBJ: PCI10003.PRG GCI10000.CH
CLIPPER PCI10003 /M
PCI10004.OBJ: PCI10004.PRG GCI10000.CH
CLIPPER PCI10004 /M
PCI10005.OBJ: PCI10005.PRG GCI10000.CH
CLIPPER PCI10005 /M
PCI10006.OBJ: PCI10006.PRG GCI10000.CH
CLIPPER PCI10006 /M
PCI10007.OBJ: PCI10007.PRG GCI10000.CH
CLIPPER PCI10007 /M
PCI10008.OBJ: PCI10008.PRG GCI10000.CH
CLIPPER PCI10008 /M
PCI10009.OBJ: PCI10009.PRG GCI10000.CH
CLIPPER PCI10009 /M
PCI10012.OBJ: PCI10012.PRG GCI10000.CH
CLIPPER PCI10012 /M
PCI10013.OBJ: PCI10013.PRG GCI10000.CH
CLIPPER PCI10013 /M
PCI10014.OBJ: PCI10014.PRG GCI10000.CH
CLIPPER PCI10014 /M
PCI10015.OBJ: PCI10015.PRG GCI10000.CH
CLIPPER PCI10015 /M
PCI10016.OBJ: PCI10016.PRG GCI10000.CH
CLIPPER PCI10016 /M
PCI10017.OBJ: PCI10017.PRG GCI10000.CH
CLIPPER PCI10017 /M
PCI10018.OBJ: PCI10018.PRG GCI10000.CH
CLIPPER PCI10018 /M
PCI10019.OBJ: PCI10019.PRG GCI10000.CH
CLIPPER PCI10019 /M
PCI10020.OBJ: PCI10020.PRG GCI10000.CH
CLIPPER PCI10020 /M
PCI10021.OBJ: PCI10021.PRG GCI10000.CH
CLIPPER PCI10021 /M
PCI10022.OBJ: PCI10022.PRG GCI10000.CH
CLIPPER PCI10022 /M
PCI10024.OBJ: PCI10024.PRG GCI10000.CH
CLIPPER PCI10024 /M
PCI10025.OBJ: PCI10025.PRG GCI10000.CH
CLIPPER PCI10025 /M
PCI10026.OBJ: PCI10026.PRG GCI10000.CH
CLIPPER PCI10026 /M
PCI10027.OBJ: PCI10027.PRG GCI10000.CH
CLIPPER PCI10027 /M
PCI10028.OBJ: PCI10028.PRG GCI10000.CH
CLIPPER PCI10028 /M
PCI10031.OBJ: PCI10031.PRG GCI10000.CH
CLIPPER PCI10031 /M
PCI10032.OBJ: PCI10032.PRG GCI10000.CH
CLIPPER PCI10032 /M
PCI10033.OBJ: PCI10033.PRG GCI10000.CH
CLIPPER PCI10033 /M
PCI10034.OBJ: PCI10034.PRG GCI10000.CH
CLIPPER PCI10034 /M
PCI10035.OBJ: PCI10035.PRG GCI10000.CH
CLIPPER PCI10035 /M
PCI10038.OBJ: PCI10038.PRG GCI10000.CH
CLIPPER PCI10038 /M
PCI10039.OBJ: PCI10039.PRG GCI10000.CH
CLIPPER PCI10039 /M
PCI10040.OBJ: PCI10040.PRG GCI10000.CH
CLIPPER PCI10040 /M
PCI10041.OBJ: PCI10041.PRG GCI10000.CH
CLIPPER PCI10041 /M
PCI10042.OBJ: PCI10042.PRG GCI10000.CH
CLIPPER PCI10042 /M
PCI10043.OBJ: PCI10043.PRG GCI10000.CH
CLIPPER PCI10043 /M
PCI10044.OBJ: PCI10044.PRG GCI10000.CH
CLIPPER PCI10044 /M
PCI10045.OBJ: PCI10045.PRG GCI10000.CH
CLIPPER PCI10045 /M
PCI10046.OBJ: PCI10046.PRG GCI10000.CH
CLIPPER PCI10046 /M
PCI10100.OBJ: PCI10100.PRG GCI10000.CH
CLIPPER PCI10100 /M
PCI10102.OBJ: PCI10102.PRG GCI10000.CH
CLIPPER PCI10102 /M
PCI10110.OBJ: PCI10110.PRG GCI10000.CH
CLIPPER PCI10110 /M
PCI10115.OBJ: PCI10115.PRG GCI10000.CH
CLIPPER PCI10115 /M
PCI10116.OBJ: PCI10116.PRG GCI10000.CH
CLIPPER PCI10116 /M
PCI10120.OBJ: PCI10120.PRG GCI10000.CH
CLIPPER PCI10120 /M
PCI10121.OBJ: PCI10121.PRG GCI10000.CH
CLIPPER PCI10121 /M
PCI10122.OBJ: PCI10122.PRG GCI10000.CH
CLIPPER PCI10122 /M
PCI10123.OBJ: PCI10123.PRG GCI10000.CH
CLIPPER PCI10123 /M
PCI10124.OBJ: PCI10124.PRG GCI10000.CH
CLIPPER PCI10124 /M
PCI10125.OBJ: PCI10125.PRG GCI10000.CH
CLIPPER PCI10125 /M
PCI10126.OBJ: PCI10126.PRG GCI10000.CH
CLIPPER PCI10126 /M
PCI10127.OBJ: PCI10127.PRG GCI10000.CH
CLIPPER PCI10127 /M
PCI10130.OBJ: PCI10130.PRG GCI10000.CH
CLIPPER PCI10130 /M
PCI10131.OBJ: PCI10131.PRG GCI10000.CH
CLIPPER PCI10131 /M
PCI10132.OBJ: PCI10132.PRG GCI10000.CH
CLIPPER PCI10132 /M
PCI10133.OBJ: PCI10133.PRG GCI10000.CH
CLIPPER PCI10133 /M
PCI10135.OBJ: PCI10135.PRG GCI10000.CH
CLIPPER PCI10135 /M
PCI10136.OBJ: PCI10136.PRG GCI10000.CH
CLIPPER PCI10136 /M
PCI10140.OBJ: PCI10140.PRG GCI10000.CH
CLIPPER PCI10140 /M
PCI10151.OBJ: PCI10151.PRG GCI10000.CH
CLIPPER PCI10151 /M
PCI10152.OBJ: PCI10152.PRG GCI10000.CH
CLIPPER PCI10152 /M
PCI10200.OBJ: PCI10200.PRG GCI10000.CH
CLIPPER PCI10200 /M
PCI10202.OBJ: PCI10202.PRG GCI10000.CH
CLIPPER PCI10202 /M
PCI10203.OBJ: PCI10203.PRG GCI10000.CH
CLIPPER PCI10203 /M
PCI10204.OBJ: PCI10204.PRG GCI10000.CH
CLIPPER PCI10204 /M
PCI10210.OBJ: PCI10210.PRG GCI10000.CH
CLIPPER PCI10210 /M
PCI10211.OBJ: PCI10211.PRG GCI10000.CH
CLIPPER PCI10211 /M
PCI10212.OBJ: PCI10212.PRG GCI10000.CH
CLIPPER PCI10212 /M
PCI10213.OBJ: PCI10213.PRG GCI10000.CH
CLIPPER PCI10213 /M
PCI10215.OBJ: PCI10215.PRG GCI10000.CH
CLIPPER PCI10215 /M
PCI10216.OBJ: PCI10216.PRG GCI10000.CH
CLIPPER PCI10216 /M
PCI10217.OBJ: PCI10217.PRG GCI10000.CH
CLIPPER PCI10217 /M
PCI10220.OBJ: PCI10220.PRG GCI10000.CH
CLIPPER PCI10220 /M
PCI10221.OBJ: PCI10221.PRG GCI10000.CH
CLIPPER PCI10221 /M
PCI10222.OBJ: PCI10222.PRG GCI10000.CH
CLIPPER PCI10222 /M
PCI10225.OBJ: PCI10225.PRG GCI10000.CH
CLIPPER PCI10225 /M
PCI10226.OBJ: PCI10226.PRG GCI10000.CH
CLIPPER PCI10226 /M
PCI10227.OBJ: PCI10227.PRG GCI10000.CH
CLIPPER PCI10227 /M
PCI10228.OBJ: PCI10228.PRG GCI10000.CH
CLIPPER PCI10228 /M
PCI10229.OBJ: PCI10229.PRG GCI10000.CH
CLIPPER PCI10229 /M
PCI10230.OBJ: PCI10230.PRG GCI10000.CH
CLIPPER PCI10230 /M
PCI10231.OBJ: PCI10231.PRG GCI10000.CH
CLIPPER PCI10231 /M
PCI10240.OBJ: PCI10240.PRG GCI10000.CH
CLIPPER PCI10240 /M
PCI10250.OBJ: PCI10250.PRG GCI10000.CH
CLIPPER PCI10250 /M
PCI10251.OBJ: PCI10251.PRG GCI10000.CH
CLIPPER PCI10251 /M
PCI10252.OBJ: PCI10252.PRG GCI10000.CH
CLIPPER PCI10252 /M
PCI10254.OBJ: PCI10254.PRG GCI10000.CH
CLIPPER PCI10254 /M
PCI10255.OBJ: PCI10255.PRG GCI10000.CH
CLIPPER PCI10255 /M
PCI10256.OBJ: PCI10256.PRG GCI10000.CH
CLIPPER PCI10256 /M
PCI10260.OBJ: PCI10260.PRG GCI10000.CH
CLIPPER PCI10260 /M
PCI10270.OBJ: PCI10270.PRG GCI10000.CH
CLIPPER PCI10270 /M
PCI10271.OBJ: PCI10271.PRG GCI10000.CH
CLIPPER PCI10271 /M
PCI10272.OBJ: PCI10272.PRG GCI10000.CH
CLIPPER PCI10272 /M
PCI10273.OBJ: PCI10273.PRG GCI10000.CH
CLIPPER PCI10273 /M
PCI10995.OBJ: PCI10995.PRG GCI10000.CH
CLIPPER PCI10995 /M
PCI10996.OBJ: PCI10996.PRG GCI10000.CH
CLIPPER PCI10996 /M
PCI10997.OBJ: PCI10997.PRG GCI10000.CH
CLIPPER PCI10997 /M
PCI10998.OBJ: PCI10998.PRG GCI10000.CH
CLIPPER PCI10998 /M
PCI10999.OBJ: PCI10999.PRG GCI10000.CH
CLIPPER PCI10999 /M
RCI10000.OBJ: RCI10000.PRG GCI10000.CH
CLIPPER RCI10000 /M
C:\SC331\CLIPPER\ROTINAS5.OBJ: C:\SC331\CLIPPER\ROTINAS5.PRG
CLIPPER C:\SC331\CLIPPER\ROTINAS5 /OC:\SC331\CLIPPER\ROTINAS5 /M
//C:\SC331\CLIPPER\RIMPR000.OBJ: C:\SC331\CLIPPER\RIMPR000.PRG
// CLIPPER C:\SC331\CLIPPER\RIMPR000 /OC:\SC331\CLIPPER\RIMPR000 /M
C:\SC331\CLIPPER\IMPRESSO.OBJ: C:\SC331\CLIPPER\IMPRESSO.PRG
CLIPPER C:\SC331\CLIPPER\IMPRESSO /OC:\SC331\CLIPPER\IMPRESSO /M
C:\SC331\CLIPPER\EXT.OBJ: C:\SC331\CLIPPER\EXT.PRG
CLIPPER C:\SC331\CLIPPER\EXT /OC:\SC331\CLIPPER\EXT /M
//C:\SC331\CLIPPER5\LIB2\S3MOUSE.OBJ: C:\SC331\CLIPPER5\LIB2\S3MOUSE.PRG
// CLIPPER C:\SC331\CLIPPER5\LIB2\S3MOUSE /OC:\SC331\CLIPPER5\LIB2\S3MOUSE /M
C:\SC331\CLIPPER\RIMPR000.OBJ: C:\SC331\CLIPPER\RIMPR000.PRG
CLIPPER C:\SC331\CLIPPER\RIMPR000 /OC:\SC331\CLIPPER\RIMPR000 /M
C:\SC331\CLIPPER\PIMPR105.OBJ: C:\SC331\CLIPPER\PIMPR105.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR105 /OC:\SC331\CLIPPER\PIMPR105 /M
C:\SC331\CLIPPER\PIMPR110.OBJ: C:\SC331\CLIPPER\PIMPR110.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR110 /OC:\SC331\CLIPPER\PIMPR110 /M
C:\SC331\CLIPPER\PIMPR115.OBJ: C:\SC331\CLIPPER\PIMPR115.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR115 /OC:\SC331\CLIPPER\PIMPR115 /M
C:\SC331\CLIPPER\PIMPR120.OBJ: C:\SC331\CLIPPER\PIMPR120.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR120 /OC:\SC331\CLIPPER\PIMPR120 /M
C:\SC331\CLIPPER\PIMPR121.OBJ: C:\SC331\CLIPPER\PIMPR121.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR121 /OC:\SC331\CLIPPER\PIMPR121 /M
C:\SC331\CLIPPER\PIMPR125.OBJ: C:\SC331\CLIPPER\PIMPR125.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR125 /OC:\SC331\CLIPPER\PIMPR125 /M
C:\SC331\CLIPPER\PIMPR130.OBJ: C:\SC331\CLIPPER\PIMPR130.PRG
CLIPPER C:\SC331\CLIPPER\PIMPR130 /OC:\SC331\CLIPPER\PIMPR130 /M
*=======
e finalmente,
PCI10000.LNK, com o seguinte conteúdo (eliminei os nomes de arquivos abaixo, pois não consegui copiar os nomes como fiz no arquivo acima (*.RMK) porque usei o editor do MSDOS pra simbolizar a falta dos arquivos coloquei "..." pra diferenciar):
*=======
FILE PCI10000
...
FILE RCI10000
FILE C:\SC331\CLIPPER\ROTINAS5
LIB ..\CLIPPER5\LIB2\NANFOR
LIB ..\CLIPPER5\LIB2\CPMI
LIB ..\CLIPPER5\LIB2\OSLIB
FILE C:\SC331\CLIPPER\RIMPR000
...
FILE C:\SC331\CLIPPER\PIMPR130
OUT SICCA334.EXE
*=======
Portanto, como o amigo autor deste 'post', gostaria dos demais esclarecimentos para que eu possa também migrar meu "SICCA334/clipper" para "SiCCA335/harbour ou xharbour" (o que for mais moderno).
No mais, todos estão de parabéns.
Caso queiram baixar e instalar meu "humilde" aplicativo, está no site:
www.mvinfo.wmx.net.br.
Grato,
W de Paula.