Alessandro L Posted January 17, 2007 Report Share Posted January 17, 2007 Alô clippeiros, estou convertendo alguns códigos antigos em Clipper mas tá dando uns probleminhas: O código original é assim (compila sem problemas): Function Leitura para lin,col,cod,vpict,vvalid @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) ----------------------------------------------- Quando altero a function para: Function Leitura(lin,col,cod,vpict,vvalid) @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) dá as seguintes mensagens no compilador do Clipper 5.01: ERROR C2050 Code block contains both macro and declared symbol references ERROR C2081 Macro of declared symbol: '{||(&vvalid)}' Eu achei muito estranho pois a única coisa alterada foi a forma de declarar os parâmetros da função !!! Alguém ajuda ?? Obrigado ! []'s Alessandro L Quote Link to comment Share on other sites More sharing options...
Alessandro L Posted January 17, 2007 Author Report Share Posted January 17, 2007 Alô clippeiros, estou convertendo alguns códigos antigos em Clipper mas tá dando uns probleminhas: O código original é assim (compila sem problemas): Function Leitura para lin,col,cod,vpict,vvalid @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) ----------------------------------------------- Quando altero a function para: Function Leitura(lin,col,cod,vpict,vvalid) @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) dá as seguintes mensagens no compilador do Clipper 5.01: ERROR C2050 Code block contains both macro and declared symbol references ERROR C2081 Macro of declared symbol: '{||(&vvalid)}' Eu achei muito estranho pois a única coisa alterada foi a forma de declarar os parâmetros da função !!! Alguém ajuda ?? Obrigado ! []'s Alessandro L Quote Link to comment Share on other sites More sharing options...
atnsoft Posted January 17, 2007 Report Share Posted January 17, 2007 Tente assim: @ lin,col get cod pict vpict valid((vValid)) read AtnSoft Harbour 0.43Flex / xHarbour 0.99.30 / Fwh 2.5 / Verce Quote Link to comment Share on other sites More sharing options...
aferra Posted January 17, 2007 Report Share Posted January 17, 2007 acho que o problema é o compilador e não função.. troque por um mais atual... clipper 5.3b Alessandro F. Silvaid=blue> E-mail :aferracini@terra.com.br FW2.0d + CL53b + Blinker 7.0 + @Say + CDX MSN: ferracini_silva@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
ricardomouramarques Posted January 17, 2007 Report Share Posted January 17, 2007 Alesandro, O pre-compilador transforma o parâmetro em um bloco de código, e o bloco de código não aceita uma macro dentro dele. Ficaria assim após a pre-compilação.{||&vValid } tente assim: @ lin,col get cod pict vpict valid(meuvalid(vValid)) read .. ... .. Function MeuValid( vValid ) Return &vValid Ricardo Marques Quote Link to comment Share on other sites More sharing options...
Alessandro L Posted January 17, 2007 Author Report Share Posted January 17, 2007 AtnSoft, colocando ((vvalid)) ele compila porém ao tentar ler a variável dá o erro: ERROR BASE/1077 Argument error: .NOT. Obs: Estou passando o seguinte valor para vvalid: '!empty(cod)' Obrigado pela tentativa ! []'s Quote Link to comment Share on other sites More sharing options...
Alessandro L Posted January 17, 2007 Author Report Share Posted January 17, 2007 Ricardo Marques, Boa idéia a sua, também achei que iria funcionar mas.... Error BASE/1003 Variable does not exist: COD Como disse antes, estou passando '!empty(cod)' para o vvalid. Alguma outra idéia ? []'s Alessandro Quote Link to comment Share on other sites More sharing options...
aferra Posted January 17, 2007 Report Share Posted January 17, 2007 então eu continuo achando que é a versão, o clipper 5.01 acita desta forma? Function Leitura(lin,col,cod,vpict,vvalid)id=red> tem uma versão que não aceita por isso eu disse que poderia ser a versão. tente usar assim então @ lin,col get cod pict vpict valid(&(vValid)) read Alessandro F. Silvaid=blue> E-mail :aferracini@terra.com.br FW2.0d + CL53b + Blinker 7.0 + @Say + CDX MSN: ferracini_silva@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
Alessandro L Posted January 17, 2007 Author Report Share Posted January 17, 2007 aferra, Me diz uma coisa, se eu quiser converter meu programa que está em Clipper 5.01 para xHarbour.. o que preciso fazer ? A sintaxe dos comandos do xHarbour é igual a do Clipper 5.3 ? []'s Alessandro Quote Link to comment Share on other sites More sharing options...
vailtom Posted January 17, 2007 Report Share Posted January 17, 2007 Sao iguais mas há alguns detalhes importantes a observar. Veja este link: http://www.sqllib.com.br/migracao.php Vailton Renato SQL LIB, wxWeb, xDevStudio & MyMake Developer Empresa: (11) 5523.4359 "Quando você estiver preparado para deixar de trabalhar com arquivos DBFs, algo maior lhe levará para a SQL LIB". Conheça o projeto em: www.sqllib.com.br Quote Link to comment Share on other sites More sharing options...
vailtom Posted January 17, 2007 Report Share Posted January 17, 2007 Tente trocar isto: @ lin,col get cod pict vpict valid(&vValid) id=code>id=code>por isto: @ lin,col get cod pict vpict valid (&(vValid)) id=code>id=code>Creio que deve resolver seu problema. Vailton Renato SQL LIB, wxWeb, xDevStudio & MyMake Developer Empresa: (11) 5523.4359 "Quando você estiver preparado para deixar de trabalhar com arquivos DBFs, algo maior lhe levará para a SQL LIB". Conheça o projeto em: www.sqllib.com.br Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted January 17, 2007 Report Share Posted January 17, 2007 citação:Sao iguais mas há alguns detalhes importantes a observar. Veja este link: http://www.sqllib.com.br/migracao.php Vailton Renato SQL LIB, wxWeb, xDevStudio & MyMake Developer Empresa: (11) 5523.4359 "Quando você estiver preparado para deixar de trabalhar com arquivos DBFs, algo maior lhe levará para a SQL LIB". Conheça o projeto em: www.sqllib.com.br id=quote>id=quote>Colega visitei o link e as mudancas sao pequenas coisas, se eu fizer isto, e compilar meu porgramar clipper(dos) no harbour meu programa passa para 32 bits e fica compativel com o XP? Luiz Fernando FW 24,CLIPPER5 5.3e,DBASE,CDX,WS,BLINKER 7.0 Quote Link to comment Share on other sites More sharing options...
vailtom Posted January 17, 2007 Report Share Posted January 17, 2007 Com certeza nao resolve 100% dos problemas, mas ajuda em muitos aspectos que sao verdadeiras armadilhas para quem está começando. Vailton Renato SQL LIB, wxWeb, xDevStudio & MyMake Developer Empresa: (11) 5523.4359 "Quando você estiver preparado para deixar de trabalhar com arquivos DBFs, algo maior lhe levará para a SQL LIB". Conheça o projeto em: www.sqllib.com.br Quote Link to comment Share on other sites More sharing options...
ricardomouramarques Posted January 17, 2007 Report Share Posted January 17, 2007 Alesandro, Já tentou trazer e passar a variável diretamente, assim: @ lin,col get cod pict vpict valid(meuvalid(Cod)) read .. ... .. Function MeuValid( Cod ) Return !empty(cod) Ricardo Marques Ricardo Marques Quote Link to comment Share on other sites More sharing options...
ram_bh Posted January 26, 2007 Report Share Posted January 26, 2007 Alessandro, Já passei por problemas quando precisei usar "&" no Clipper. Em algumas situações, usei um "." para informar ao compilador o final da substituição. Experimente: @ nLin,nCol SAY &(cVar). Um abraço! Rodrigo Melo Belo Horizonte / MG Quote Link to comment Share on other sites More sharing options...
siscat Posted January 26, 2007 Report Share Posted January 26, 2007 Alessandro, boa tarde... problema simples de ser resolvido... Function Leitura para lin,col,cod,vpict,vvalid @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) id=code>id=code>neste seu codigo quando voce utiliza a clausula PARAMETERS para receber os parametros passados para a funcao, estas variaveis são criadas com tipo PRIVATE e quando estes parametros são recebidos pela propria função como neste caso: Function Leitura(lin,col,cod,vpict,vvalid) @ lin,col get cod pict vpict valid(&vValid) read return(lastkey()<>27) id=code>id=code>elas são criadas com scopo LOCAL .... code blocks com macros de variaveis do tipo LOCAL não são entendidos pelo compilador... para resolver isso basta voce fazer o seguinte... Function Leitura(lin,col,cod,vpict,vvalid) Private vVar := vValid @ lin,col get cod pict vpict valid(&vVar) read return(lastkey()<>27) id=code>id=code>isto resolve de forma bem simples este seu problema... Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS siscatsoftware@hotmail.com Desenvolvimento e migração de aplicativos DOS para Windows FWH for (x)Harbour ADS Server, DB SQL c/ SQLRDD @Say com MUITO Orgulho! Editado por - siscat on 26/01/2007 13:57:24 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.