Clipper On Line • Ver Tópico - Como Gerar un .LIB com Summer 87?

Como Gerar un .LIB com Summer 87?

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Como Gerar un .LIB com Summer 87?

Mensagempor aspepper » 17 Dez 2020 14:31

Boa tarde pessoal,

Já procurei em vários lugares. Mas a gente encontra pouco material para clipper. Mesmo baixando o livro do Antonio Geraldo da Rocha Vidal, sobre Clipper Summer 87, não há referências lá. Como eu gero o .LIB do código abaixo no Clipper Summer 87?

Eu compilei com > clipper USER200.PRG e depois > plink86 USER200 lib clipper, extend. Mas desta forma obtenho apenas o .EXE.

procedure ab_arqca      
parameters arq
private aarq
aarq = .f.
do while ! net_use ('&arq', .f., 1)
    if ! aarq
        do mensa with 'Aguarde ... Sistema bloqueado !'
        aarq = .t.
    endif
    inkey (2)
enddo
if aarq
    do mens with 'Aguarde ... '
endif
return

function ab_arqc       
parameters arq
if ! net_use ('&arq', .f., 1)
    do mensa with 'Sistema bloqueado !'
    inkey (2)
    return .f.
else
    return .t.
endif

function ab_arqe       
parameters arq
if ! net_use ('&arq', .t., 1)
    do mensa with 'Sistema bloqueado !'
    inkey (2)
    return .f.
else
    return .t.
endif

procedure ab_arqea     
parameters arq
private aarq
aarq = .f.
do while ! net_use ('&arq', .t., 1)
    if ! aarq
        do mensa with 'Aguarde ... Sistema bloqueado !'
        aarq = .t.
    endif
    inkey (2)
enddo
if aarq
    do mens with 'Aguarde ... '
endif
return
   
procedure telanome     
parameters mensa
cor ('m')
if len (mensa) < 25
    @ 24, 52 say mensa + space (24 - len (mensa))
else
    mensa_1 = 'Tamanho excedeu 24 carac'
    @ 24, 52 say mensa + space (24 - len (mensa))
endif
return

procedure mens         
parameters mensagem
cor ('m')
if len (mensagem) <= 51
    @ 24, 0 say mensagem + space (51 - len (mensagem))
else
    mensa_1 = ''
    @ 24, 0 say mensagem + space (51 - len (mensagem))
endif
return

procedure mud_cor       
private cor__i1, cor__i2, cor__i3, cor__i4
cor__i1 = cor11
cor__i2 = cor21
cor__i3 = cor31
cor__i4 = cor41
do case
    case colori1 .and. cor_i = 'cor1'
        set color to &cor__i1/n,n/w,n
    case colori1 .and. cor_i = 'cor2'
        set color to &cor__i2/n,n/w,n
    case colori1 .and. cor_i = 'cor3'
        set color to &cor__i3/n,n/&cor__i3,n
    case colori1 .and. cor_i = 'cor4*'
        &cor__i4 = &cor__i4 + '*'
        set color to &cor__i4/n,n/&cor__i4,n
    case colori1 .and. cor_i = 'cor4'
        set color to &cor__i4/n,n/&cor__i4,n
    case cor_i = 'cor1' .or. cor_i = 'cor2'
        set color to w/n,n/w,n
    case cor_i = 'cor4*'
        set color to w*+/n,n/w+,n
    case cor_i = 'cor3' .or. cor_i = 'cor4'
        set color to w+/n,n/w+,n
endcase
return
   
function cor           
parameters parCor
parCor = upper (parCor)
do case
    case ! colori1 .and. parCor $ 'GD' .and. isolado1
        cor__i = 'w+/n,n/w,,,w+/n'
    case ! colori1 .and. parCor $ 'GD'
        cor__i = 'w+/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor $ 'TLC'
        cor__i = 'w/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor = 'T*'
        cor__i = 'w*/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor $ 'AM'
        cor__i = 'n/w,w+/n,,,w+/n'
    case ! colori1 .and. parCor = 'W'
        cor__i = 'w/n,n/w,,,n/w'
    case parCor $ 'LC'
        cor__i = cor11 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'T'
        cor__i = cor21 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'T*'
        cor__i = cor21 + '*/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor $ 'GD' .and. isolado1
        cor__i = cor21 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor51
    case parCor $ 'GD'
        cor__i = cor31 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'M'
        cor__i = cor71 + '/' + cor81 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'A'
        cor__i = cor61 + '/' + cor81 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor $ 'W'
        cor__i = cor31 + '/' + cor51 + ',' + cor31 + '/' + cor81 + ',' + cor51 + ',,' + cor31 + '/' + cor41
endcase
set color to &cor__i
return .t.

procedure mensa         
parameters p_mensagem
set cursor off
tone (2500, 10)
cor ('a')
if len (p_mensagem) <= 51
    @ 24, 0 say p_mensagem + space (51 - len (p_mensagem))
else
    p_mensagem = ''
    @ 24, 0 say p_mensagem + space (51 - len (p_mensagem))
endif
tone (2500, 2)
return

procedure mensagem     
private mens_agem, c_or1, c_or2
parameters mens_agem, c_or1, c_or2
cor_i = c_or1
do mud_cor
@ 24, 0 say mens_agem + space (75 - len (mens_agem))
cor_i = 'cor2'
do mud_cor
@ 24, 79 say '-'
cor_i = c_or2
do mud_cor
return

procedure confimp       
keyboard ''
do mens with 'Impressora/Formulario Ok - Imprimir  (S/N) ?'
cor ('w')
do while .t.
    set cursor on
    @ 24, 45 get confimp picture '!'
    read
    clear gets
    set cursor off
    do case
        case lastkey () = 27 .or. confimp = 'N'
            confimp = 'N'
            return
        case ! confimp $ 'SN' .or. lastkey () != 13
            tone (70, 1)
            loop
    endcase
    exit
enddo
if ! espoim1 .and. confimp = 'S'
    do mensa with 'Esta��o com impress�o n�o autorizada ! Tecle algo'
    inkey (0)
    confimp = 'N'
endif
return
   
function strzero       
parameters cl_num, cl_len, cl_dec
private cl_str
do case
    case pcount () = 3
        cl_str = str (cl_num, cl_len, cl_dec)
    case pcount () = 2
        cl_str = str (cl_num, cl_len)
    otherwise
        cl_str = str (cl_num)
endcase
if '-' $ cl_str
    return '-' + replicate ('0', len (cl_str) - len (ltrim (cl_str))) + substr (cl_str, at ('-', cl_str) + 1)
else
    return replicate ('0', len (cl_str) - len (ltrim (cl_str))) + ltrim (cl_str)
endif
   
function net_use       
parameters file, ex_use, wait
private forever
forever = wait = 0
do while forever .or. wait > 0
    if ex_use
        use &file exclusive
    else
        use &file
    endif
    if ! neterr ()
        return .t.
    endif
    inkey (1)
    wait = wait - 1
enddo
return .f.
function net_use       
parameters file, ex_use, wait
private forever
forever = wait = 0
do while forever .or. wait > 0
    if ex_use
        use &file exclusive
    else
        use &file
    endif
    if ! neterr ()
        return .t.
    endif
    inkey (1)
    wait = wait - 1
enddo
return .f.


Alguém já fez?

Tem alguma coisa que preciso declarar no .PRG? Ou é algum parâmetro no > clipper, ou > plink86 ?

Desde já agradeço.

Alex Pimenta
Avatar de usuário

aspepper
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 15 Dez 2020 19:35
Cidade/Estado: Santos/SP
Curtiu: 8 vezes
Mens.Curtidas: 0 vez

Como Gerar un .LIB com Summer 87?

Mensagempor Softwhouse » 17 Dez 2020 14:53

Pouco lembro sobre isso, mas na época era usado um programa chamado lib.exe ou libra.exe. Tinha que compilar a função e e adicionar o .obj na lib. Também dava para extrair o arquivo da lib. Lamentável que a seção downloads foi retirada do site, se não me engano tinha esses programas lá.
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Como Gerar un .LIB com Summer 87?

Mensagempor JoséQuintas » 17 Dez 2020 15:33

Continua do mesmo jeito até hoje, mas não sei se os utilitários atuais servem.
Tinha o LIB.EXE da Microsoft, ou algum equivalente
Digita LIB e ele vai perguntando, depois só acrescentar/remover usando +/- e indicando o .OBJ
O arquivo de mapa é inútil, pelo menos pra mim, nem se preocupe com ele, se por acaso criar o .MAP pode apagar.

Se quiser compilar com Harbour....

Num primeiro momento, o que me lembro, é que no summer podia escrever replace a with b c with d, mas no Harbour/Clipper 5.1 é obrigatório colocar vírgula entre os campos.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18151
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Como Gerar un .LIB com Summer 87?

Mensagempor alxsts » 17 Dez 2020 15:58

Olá!

Certamente este tópico está relacionado a este outro.

As perguntas relativas a este tópico já foram respondidas acima pelos colegas. Realmente naquele tempo precisávamos de um utilitário externo (Lib.Exe) como já mencionado. Uma lib é um conjunto de arquivos .OBJ encapsulados em um único arquivo .LIB. Atualmente, com [x]Harbour pode-se criar uma lib diretamente. No Harbour, basta acrescentar -hblib nos parâmetros de compilação do HbMk2.

Em relação ao outro tópico, mencionado acima, perceba que você não precisa mais desta lib pois já tem os fontes nela contidos. Veja lá os comentários que fiz.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Como Gerar un .LIB com Summer 87?

Mensagempor aspepper » 17 Dez 2020 16:59

Obrigado a todos.

Já consegui compilar e resolver. Agora é convercer o cliente a modernizar este sistema.

Vou baixar o harbor. Vi que consigo usar o Visual Studio Code com o Harbur. Parece bem interessante
Avatar de usuário

aspepper
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 7
Data de registro: 15 Dez 2020 19:35
Cidade/Estado: Santos/SP
Curtiu: 8 vezes
Mens.Curtidas: 0 vez




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro