Pegar o return value de um programa
Moderador: Moderadores
Pegar o return value de um programa
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...
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...
Pegar o return value de um programa
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.
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.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Pegar o return value de um programa
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.
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)
Alexandre Santos (AlxSts)
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Pegar o return value de um programa
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:
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...
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>])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)
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)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Pegar o return value de um programa
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.
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/
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

- Mensagens: 250
- Registrado em: 24 Out 2008 17:02
- Localização: Itaocara - RJ - Brasil
Pegar o return value de um programa
Grava um txt com o retorno que é bem mais fácil

Rca Sistemas - Itaocara - RJ
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Pegar o return value de um programa
Amiguinhos,
Outra dica é enviar o conteúdo para uma variavel de ambiente do DOS e capturar por GETENV(). To certo.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Pegar o return value de um programa
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.
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

- Mensagens: 250
- Registrado em: 24 Out 2008 17:02
- Localização: Itaocara - RJ - Brasil
Pegar o return value de um programa
Várias pessoas estão recomendando o Harbour no lugar do xHarbour, para biblioteca visual recomendo o Fivewin.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.

Rca Sistemas - Itaocara - RJ
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Pegar o return value de um programa
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?
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/
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/
Pegar o return value de um programa
Obrigado pela dica SamBomb.
Alguma outra opinião por favor?!
abs.
Alguma outra opinião por favor?!
abs.


