Página 1 de 1

Passagem de parametros do Clipper para Xharbour

Enviado: 20 Jul 2010 22:29
por billy1943
Eu utilizei o exemplo constante do Xharbour denominado MAPA, em que entramos com os dados (UF, Cidade e Rua) do ponto de partida e ponto de destino e acessamos os dois pontos no Mapa.

Para ficar mais prático ainda, tornei os dados de partida fixos e só estou fornecendo os dados de destino.

Assim o programa compilado em XHarbour tem de receber os 3 parametros: exemplo:

UF = "SP"
Cidade = "SOROCABA"
Rua = "RUA BRASIL"

Estou tentando de toda e qualquer forma a passagem dos 3 parametros, pois o Xharbour se executado no prompt do DOS funciona perfeitamente na forma:

TESTE "SP" "SOROCABA" "RUA BRASIL"

abrindo o MAPS.Google e localizando os pontos de partida e destino.

De dentro do Clipper usando "RUN" não há jeito.
Mandei os 3 parametros em separado, e/ou concatenados também, mas ele trunca em torno de uns 11 caracteres e não pega todos os elementos (uf,cidade e rua);

Como fazer essa passagem de parametros do Clipper para o executável criado pelo Xharbour ?

Re: Passagem de parametros do Clipper para Xharbour

Enviado: 22 Jul 2010 15:08
por Toledo
Olá Billy1943, segue abaixo um exemplo do que você pode fazer:

Código Clipper:

Código: Selecionar todos

cUF:=SPAC(2)
cCIDADE:=SPAC(25)
cRUA:=SPAC(40)
@ 10,10 SAY "ESTADO..:" GET cUF PICT "@!"
@ 11,10 SAY "CIDADE..:" GET cCIDADE PICT "@!"
@ 12,10 SAY "RUA.....:" GET cRUA PICT "@!"
READ
cMacro:='MAPAS "'+cUF+'" "'+RTRIM(cCIDADE)+'" "'+RTRIM(cRUA)+'"'
!&cMacro.
Código xHarbour (MAPAS.PRG):

Código: Selecionar todos

PROCEDURE Main( ... )
LOCAL aPar := HB_AParams()
LOCAL cPar
FOR EACH cPar IN aPar
 ? "Parametro:", cPar
NEXT
RETURN
Abraços,

Re: Passagem de parametros do Clipper para Xharbour

Enviado: 22 Jul 2010 22:26
por billy1943
Olá Toledo,

Obrigado ao amigo pela atenção.

Por caminhos bem parecidos, eu consegui fazer o desejado.

Não sei porque o XHarbour "trunca" os parametros recebidos onde houver um espaço (" ").
Quando eu percebi isso, passei a mandar os parametros com um caracter tipo "{" no lugar os espaços com a função STRTRAN e no programa MAPA.EXE desenvolvido em Xharbour faço o inverso,isto é volto o "{" para espaço novamente.

Está dando certo !

Como a minha intenção é agregar programas em Xharbour para uso em conjunto com meus sistemas em Clipper, estudando-os, visto que o Clipper não tem condições de acessar Internet, esta primeira "aula" foi proveitosa.

Re: Passagem de parametros do Clipper para Xharbour

Enviado: 23 Jul 2010 00:59
por vagucs
passe os parametros entre "" que funciona sem precisar de strtran.

Re: Passagem de parametros do Clipper para Xharbour

Enviado: 23 Jul 2010 07:04
por Toledo
vagucs escreveu:passe os parametros entre "" que funciona
Mas é o que o meu exemplo acima faz!

Abraços,