RUN executando comando longo

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

fabiosfreire
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 06 Nov 2009 22:03
Localização: Andirá-PR

RUN executando comando longo

Mensagem por fabiosfreire »

Bom dia

Preciso executar uma aplicação que tem alguns parâmetros. Utilizamos o comando RUN, mas infelizmente ele não aceita todos os parâmetros. O comando está sendo executado até uma parte, o que me parece estar sendo respeitado algum limite.

Exemplo:

Código: Selecionar todos

RUN (C:\Pasta\Sub-pasta\Programa.exe Arquivo="C:\Pasta\12345678901234567890123456789012345678901234-procNFe.xml" E-mail="teste@dominioteste.com.br")
Antes que alguém diga que posso renomear o arquivo, logo adianto: O arquivo é uma nf-e, portanto não posso renomeá-lo.
Já colocamos o comando dentro de variáveis:

Código: Selecionar todos

xcomando := 'C:\Pasta\Sub-pasta\Programa.exe Arquivo="C:\Pasta\12345678901234567890123456789012345678901234-procNFe.xml" E-mail="teste@dominioteste.com.br"'
RUN (xcomando)
Mas o funcionamento é o mesmo, ou seja, deve existir algum limite no tamanho do comando passado.
Gostaria de saber se existe algum meio de executar comandos longos, seja pelo RUN ou qualquer outro comando.
Utilizo a lfnlib, mas não encontrei nada parecido nela.

Obrigado
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: RUN executando comando longo

Mensagem por alxsts »

Olá!

Seja bem-vindo ao Fórum!

Fiz o teste mostrado abaixo e verifiquei que, no Clipper, o comprimento máximo do parâmetro informado na linha de comando é 56 bytes. No xHarbour, digitei mais de 1500 bytes e aceitou normal...

Código: Selecionar todos

Function Main( xPar )

   cls

   Alert( xPar + Str( Len( xPar ) ) )

   RETURN NIL
Sugestão: mude sua aplicação para 32 bits, com Harbour ou xHarbour.
[]´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: RUN executando comando longo

Mensagem por Maligno »

Um batch?
[]'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: RUN executando comando longo

Mensagem por alxsts »

Olá!

Talvez fosse melhor ler estes parâmetros de uma tabela que talvez até já exista.
[]´s
Alexandre Santos (AlxSts)
fabiosfreire
Usuário Nível 1
Usuário Nível 1
Mensagens: 4
Registrado em: 06 Nov 2009 22:03
Localização: Andirá-PR

Re: RUN executando comando longo

Mensagem por fabiosfreire »

Obrigado pelas respostas!
alxsts escreveu:Olá!

Seja bem-vindo ao Fórum!

Fiz o teste mostrado abaixo e verifiquei que, no Clipper, o comprimento máximo do parâmetro informado na linha de comando é 56 bytes. No xHarbour, digitei mais de 1500 bytes e aceitou normal...

Código: Selecionar todos

Function Main( xPar )

   cls

   Alert( xPar + Str( Len( xPar ) ) )

   RETURN NIL
Sugestão: mude sua aplicação para 32 bits, com Harbour ou xHarbour.
A idéia é, num futuro não muito distante, migrarmos. Mas no momento preciso resolver o problema no Clipper mesmo. Outras urgências envolvidas, espero que entenda.
alxsts escreveu:Olá!

Talvez fosse melhor ler estes parâmetros de uma tabela que talvez até já exista.
Não citei no post inicial, para poder explicar da forma mais sucinta possível, mas a princípio, temos todos os parâmetros gravados, e também não funciona.
Maligno escreveu:Um batch?
Vou testar esta alternativa e ver no que dá. Se resover, aviso aqui.

Abraço
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

RUN executando comando longo

Mensagem por Pablo César »

Maligno escreveu:Um batch?
Vou testar esta alternativa e ver no que dá. Se resover, aviso aqui.
Não creio que venha a ter problemas executando através de uma batch. Eu fiz muito isso, criar uma batch que contenha caminhos ou parâmetros variáveis, a recomendação é essa e sem dúvidas irá funcionar se criar arquivo bat e executá-lo !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: RUN executando comando longo

Mensagem por rochinha »

Amiguinho,

Só complementando a idéia dos amigos, crie toda a linha de comando e salve o conteudo em um arquivo .BAT pelo proprio clipper e depois execute-o via RUN.

Código: Selecionar todos

xcomando := 'C:\Pasta\Sub-pasta\Programa.exe Arquivo="C:\Pasta\12345678901234567890123456789012345678901234-procNFe.xml" E-mail="teste@dominioteste.com.br"'
memowrit( "EXECUTAR.BAT", xcomando )
RUN ("EXECUTAR.BAT")
Se transformar em função, terá:

Código: Selecionar todos

function NFeEnviarEmail( cChaveNFe, cEmailDestino )
xcomando := [C:\Pasta\Sub-pasta\Programa.exe Arquivo="C:\Pasta\]+cChaveNFe+[-procNFe.xml" E-mail="]+ cEmailDestino+["]
memowrit( "EXECUTAR.BAT", xcomando )
RUN ("EXECUTAR.BAT")
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.
Responder