Pegar o return value de um programa

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Pegar o return value de um programa

Mensagem por bencz »

Gostaria de saber, como posso pegar o return value de um programa que estou executando apartir do meu programa em clipper...
Atualmente estou usando o WaitRun para executar o meu programa, mas o return dele é o handle do arquivo, e não o return value do programa que estou executando...
Imagem
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Pegar o return value de um programa

Mensagem por billy1943 »

Qualquer função ou procedure do Clipper pode retornar um valor de qualquer natureza (caracter, numérico, lógico, etc), basta apenas usar uma estrutura semelhante a esta:

1. programa ou rotina principal:

codigo_reg := busca_codigo(arquivo)
if codigo_reg == space(4)
(tratamento de insucesso.....
loop
else
tratamento de sucesso


endif

Explicação: se a rotina satisfazer sua finalidade retornará o valor de um campo que tem 4 caracteres que é um código, e, em caso contrário, retornará um campo com 4 espaços, para a sua rotina dar o seguimento.

PROCEDURE busca_codigo(arq)
select arq
.....

.....

seek

if eof()
return (space(4))
else
....
...
return (codigo_arq)

P.S. Ao menos foi isso que entendi de "return value", se esse programa for em Clipper também, obvio.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Pegar o return value de um programa

Mensagem por alxsts »

Olá!

Se os valores retornados pelo programa forem conhecidos, você poderá executá-lo de dentro de um arquivo .Bat e testar o retorno com IF ERRORLEVEL.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Pegar o return value de um programa

Mensagem por Jairo Maia »

Olá Pessoal,

Salvo se estou enganado, como estamos no fórum de Clipper, o Clipper não tem esse recurso que é gerenciar o Return Value. Em Clipper, o que você pode fazer é tratar o Return Code:

Código: Selecionar todos

ErrorLevel([<nReturnCode>])
No sistema que vai verificar o retorno, o colega Alexandre (AlxSts) Já deu a dica.

Mas se eu estiver enganado, embora não use mais o Clipper sempre é bom aprender mais uma...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pegar o return value de um programa

Mensagem por JoséQuintas »

Tudo indica que é isso mesmo: é um programa executando outro
E tudo indica que é alguma informação.
Dependendo do caso, poderia até usar um arquivo temporário, ou até mesmo um dbf.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

Pegar o return value de um programa

Mensagem por sambomb »

Grava um txt com o retorno que é bem mais fácil
Imagem

Rca Sistemas - Itaocara - RJ
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Pegar o return value de um programa

Mensagem por rochinha »

Amiguinhos,

Outra dica é enviar o conteúdo para uma variavel de ambiente do DOS e capturar por GETENV(). To certo.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Clash
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 11 Set 2004 11:14
Localização: Divinópolis (MG)

Pegar o return value de um programa

Mensagem por Clash »

Colega Jairo, vc comenta não estar mais utilizando o Clipper.

Eu já havia entrado neste conceito com o amigo Rochinha, mas eu acabei adiando.

Para qual plataforma vc migrou?

Vejo muitos comentários aqui no fórum, Harbour / xHarbour, estou completamente perdido, para qual migrar, o que é um ou outro.

Abs.
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

Pegar o return value de um programa

Mensagem por sambomb »

Clash escreveu:Colega Jairo, vc comenta não estar mais utilizando o Clipper.

Eu já havia entrado neste conceito com o amigo Rochinha, mas eu acabei adiando.

Para qual plataforma vc migrou?

Vejo muitos comentários aqui no fórum, Harbour / xHarbour, estou completamente perdido, para qual migrar, o que é um ou outro.

Abs.
Várias pessoas estão recomendando o Harbour no lugar do xHarbour, para biblioteca visual recomendo o Fivewin.
Imagem

Rca Sistemas - Itaocara - RJ
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pegar o return value de um programa

Mensagem por JoséQuintas »

Aliás... faltou o principal.
Foi dito no início que é pelo Clipper pegar o retorno de outro programa.
Se este outro programa for Windows, só alterando este outro programa.

Se este outro programa também for em Clipper, uma solução interessante seria juntar os dois num único EXE.

Então está dependendo mais deste outro programa do que do próprio Clipper.
Só depois de saber dele, é que dá pra pensar em alguma solução.
Como é que este outro programa retorna alguma coisa?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Clash
Usuário Nível 2
Usuário Nível 2
Mensagens: 81
Registrado em: 11 Set 2004 11:14
Localização: Divinópolis (MG)

Pegar o return value de um programa

Mensagem por Clash »

Obrigado pela dica SamBomb.

Alguma outra opinião por favor?!

abs.
Responder