Autor Tópico: [RESOLVIDO] Executar comandos de um TXT  (Lida 2691 vezes)

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
[RESOLVIDO] Executar comandos de um TXT
« Online: Setembro 08, 2010, 05:04:52 pm »
Ois pessoal.
Preciso de outra ajuda.
tenho um controle que executa um monte de processos criando arquivos de texto usando os dados do BD.
Até ai tudo bem!!!

Bem, eu precisaria mudar isso e pegar essas linhas de comando direto de um bloco de notas para executá-las.

Criei um TXT e consegui pegar os dados desse arquivo... o problema é fazer o SC executar esses comandos... fiz assim:

$char="";

$fp = fopen("c:\comandos.txt", "r");
while (!feof($fp)){
    $char .= fgetc($fp);
}
fclose($fp);
echo $char;

Esse echo não deu certo... pq ele tá "imprimindo! os comandos na tela.
precisaria que a aplicação entendesse que isso são comandos a executar.
No arquivo de texto que ele lê existem comandos mais ou menos assim:
"
sc_lookup(dsclientes,"Select clinome from tb_clientes where clistatus= 'A'");
   
$contador = count({dsclientes});
$conteudo = "";
for($x=0;$x<$contador;$x++) { $conteudo .= {dsclientes[$x][0]} .chr(13).chr(10); }
   
$arquivo1 = "c:\clientes.txt";
$arquivo = trim($arquivo1);
   
if (!$abrir = fopen($arquivo,"w")){
.....
"


Oq fazer?
« Última modificação: Setembro 29, 2010, 01:03:40 pm por waae »

Diogo Toscano

  • Administrator
  • Expert
  • *****
  • Mensagens: 590
    • :: ScriptCase ::
    • Email
Re: Executar comandos de um TXT
« Responder #1 Online: Setembro 08, 2010, 05:30:28 pm »
se é comando php, tem que dar include.

Se é comando sql, voce devera ler o conteudo e executar no sc_exec_sql(se nao precisar de retorno) ou sc_lookup(se quizer retorno).

Se o que vc esta escrevendo no txt ja são comandos php, leia um pouco mais sobre include:
http://br2.php.net/manual/en/function.include.php

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Executar comandos de um TXT
« Responder #2 Online: Setembro 08, 2010, 05:35:35 pm »
Estude a função eval do PHP.


$COMANDO="ECHO 'COMANDO ECHO';";
eval($COMANDO);

« Última modificação: Setembro 08, 2010, 06:15:15 pm por Harold »

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Executar comandos de um TXT
« Responder #3 Online: Setembro 22, 2010, 10:15:49 am »
Haroldo, Valeu... consegui usar o Eval... e realmente executa os comandos contidos no arquivo de texto.
Porem ele executa apenas quando os comandos estão em PHP.
Quando eu uso uma macro do SC, "sc_lookup(" por exemplo, ele não roda.

então eu deveria mudar o código e usar apenas comando em PHP...?
Existe alguma forma de pegar os dados da conexão que o SC está usando?
Pois no Select em PHP tenho que passar a conexão...
Não sei se consegui explicar........!
Algum sugestão??

Bem... to testando tudo o que posso aki... qq coisa  aviso.


Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Executar comandos de um TXT
« Responder #4 Online: Setembro 22, 2010, 10:40:02 am »
sim só comandos php, naturalmente.
macros sc são convertidas no momento da geração do código,e se a mesma estiver contida dentro de aspas, essa conversão não ocorrerá. Você pode fazer o acesso ao banco com php, ou ver o código que o sc_lookup gera e jogar diretamente esse código para ser executado pelo eval.

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Executar comandos de um TXT
« Responder #5 Online: Setembro 29, 2010, 08:23:30 am »
Estou usando PHP mesmo no arquivo.... ele roda (faz) o que eu quero certinho.... mas fica dando erro na aplicação:
ERRO
Use of undefined constant parsaidatxt - assumed 'parsaidatxt'

esse erro ocorre na linha:
$dssaida = mysql_query("SELECT parsaidatxt FROM tb_parametros", $connection);
$saida = mysql_result($dssaida,0,parsaidatxt);

Não entendo pq. Ele acha esse campo, pq eh nessa saida que ele está criando os TXTs que preciso, mas insiste no erro...
Na verdade, em todos os Selects ele dá esse erro com o campo.
Alguém sabe pq??

Ou alguma forma de não exibir esses erros somente nesta aplicação?
« Última modificação: Setembro 29, 2010, 08:57:26 am por waae »

Diogo Toscano

  • Administrator
  • Expert
  • *****
  • Mensagens: 590
    • :: ScriptCase ::
    • Email
Re: Executar comandos de um TXT
« Responder #6 Online: Setembro 29, 2010, 10:13:11 am »
poe :

$saida = mysql_result($dssaida,0,'parsaidatxt');
ou
$saida = mysql_result($dssaida,0,0);

waae

  • Avançado
  • ****
  • Mensagens: 292
    • Email
Re: Executar comandos de um TXT
« Responder #7 Online: Setembro 29, 2010, 01:03:21 pm »
Nunca tive problemas em usar o nome do campo sem as aspas em páginas PHP.
Mas de qualquer forma colocando as aspas nessas linha no bloco de notas rodou certinho sem erro!!

Obrigada Diogo!!!