isnil e isnumber

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

shinock
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 28 Jan 2009 08:57
Localização: Belo Horizonte

isnil e isnumber

Mensagem por shinock »

Bom dia,

A quem puder me ajudar estou tentando compilar um codigo que peguei na internet quando mando linkar a aplicação com blinker ou rtlink, o linkeditor me retorna dois error:

BLINKER : 1115 : PRG2.OBJ : 'ISNUMBER' : UNRESOLVED EXTERNAL
BLINKER : 1115 : PRG3.OBJ : 'ISNIL' : UNRESOLVED EXTERNAL

Compilei a aplicação da seguinte forma:

clipper prg1
clipper prg2
clipper prg3
clipper mod2
blinker fi prg1 fi prg2 fi prg3 fi mod2

Procurei por essa função nos quatro prgs, mas em nenhum existe encontrei varias chamadas para essas funções mas não as funções; e pelo que pude perceber isnumber é um tipo de função de validação numerica, procurei informações na internet sobre os dois nomes e muito pouca coisa com claresa encontrei; A pergunta que tenho a lhe fazer e a seguinte, Essa duas funções fazem parte do clipper?

Não instalei as atualizações do clipper 5.3 que foi usado na tentativa de compilar a aplicação.

Desde ja antecipo agradecimentos a todos que puder ajudar
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: isnil e isnumber

Mensagem por alaminojunior »

Bom dia.
Procurando aqui no NG do Clipper 5.3b (atualizado), não encontrei estas funções. Ela deve fazer parte de alguma lib de terceiros.
Verifique aí se não existe, alguma lib que faça parte do projeto, e adicione ela.

Código: Selecionar todos

clipper prg1
clipper prg2
clipper prg3
clipper mod2
blinker fi prg1 fi prg2 fi prg3 fi mod2 lib minhalib, outralib
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: isnil e isnumber

Mensagem por Maligno »

Na verdade ISNIL() e ISNUMBER() não são funções, mas comandos do próprio Clipper, definidos no arquivo COMMON.H, que deve ser incluído no fonte onde são utilizados. Daí o erro do linker será resolvido. Esse arquivo provavelmente deve estar na pasta INCLUDE do seu Clipper. Veja lá.

Dica: quando informar aquivos para o linker, use apenas FI arq1,arq2,arq3 ao invés de FI arq1 FI arq2 FI arq3. Dá no mesmo. O mesmo vale para LIB.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: isnil e isnumber

Mensagem por alxsts »

Uma pequena correção: o nome do arquivo é Common.CH.

Se voce não tiver este arquivo, copie o código abaixo e salve com o nome COMMON.CH. Normalmente fica em C:\Clipper5\Include.

[]´s
AlxSts

Código: Selecionar todos

/***
*
*  Common.ch
*
*  Commonly used definitions
*
*  Copyright (c) 1993, Computer Associates International, Inc.
*  All rights reserved.
*
*/

#define TRUE  .T.
#define FALSE .F.
#define YES   .T.
#define NO    .F.

#translate ISNIL( <v1> )         => ( <v1> == NIL )
#translate ISARRAY( <v1> )       => ( valtype( <v1> ) == "A" )
#translate ISBLOCK( <v1> )       => ( valtype( <v1> ) == "B" )
#translate ISCHARACTER( <v1> )   => ( valtype( <v1> ) == "C" )
#translate ISDATE( <v1> )        => ( valtype( <v1> ) == "D" )
#translate ISLOGICAL( <v1> )     => ( valtype( <v1> ) == "L" )
#translate ISMEMO( <v1> )        => ( valtype( <v1> ) == "M" )
#translate ISNUMBER( <v1> )      => ( valtype( <v1> ) == "N" )
#translate ISOBJECT( <v1> )      => ( valtype( <v1> ) == "O" )

#xcommand DEFAULT <v1> TO <x1> [, <vn> TO <xn> ]                        ;
          =>                                                            ;
          IF <v1> == NIL ; <v1> := <x1> ; END                           ;
          [; IF <vn> == NIL ; <vn> := <xn> ; END ]

#command UPDATE <v1> IF <exp> TO <v2> ;
         =>                           ;
         IF <exp> ; <v1> := <v2> ; END
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: isnil e isnumber

Mensagem por Maligno »

Uma pequena correção: o nome do arquivo é Common.CH.
Ops! Verdade. É que estou trabalhando só com C e C++ agora. Confundi as bolas.

Mas o tal arquivo existe na instalação padrão do Clipper. Se o colega não o tiver, muito melhor seria reinstalar o Clipper todo, pois se este arquivo estiver faltando, não será difícil que falte mais algum. A reinstalação pode, futuramente, evitar dores-de-cabeça do tipo.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: isnil e isnumber

Mensagem por alxsts »

Imaginei... .h são os headers para as linguagens C e C++.

Creio que o colega realmente não conhecia a existencia desse arquivo. Mas, o Maligno tem razão: se não tiver o arquivo, é melhor reinstalar o Clipper todo.

Em tempo: bem vindo ao Fórum Shinock.

[]´s
AlxSts
[]´s
Alexandre Santos (AlxSts)
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: isnil e isnumber

Mensagem por Stanis Luksys »

Acho que poderia resolver com uma função tipo essa:
function isnumber(x)
return (type(x)=="N")
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
shinock
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 28 Jan 2009 08:57
Localização: Belo Horizonte

Re: isnil e isnumber

Mensagem por shinock »

Agradeço a todos que contribuiram para exclarecer minhas duvidas.
Responder