CAPÍTULO 4
Programação visual com Software Livre
EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo.  Prólogo de Benoit Minisini



4.3  EXEC


Existem dois comandos para lançar a execução de programas a partir do Gambas: EXEC e SHELL. Um programa em execução se denomina processo e a partir de agora falaremos de processos mais que de programas. A primeira instrução, EXEC, lança o comando que indiquemos, acompanhado dos parâmetros que escrevemos:

[Variavel=]  EXEC  [ Comande ] [ WAIT ] [ FOR  (READ | WRITE | READ | WRITE) ][ TO String

Para facilitar a escrita dos parâmetros, evitando os problemas que podem surgir com caracteres especiais tais como os espaços, a sintaxes de EXEC indica que temos que passar o comando e os parâmetros como uma matriz ou array de cadeias:

[ Command ,  parametro1 ,  parametro2  ....... ]

Desta forma, si tivermos que executar, por exemplo, o comando cat com um nome de arquivo tal como meu arquivo.txt que tenha um espaço no meio, desaparece a ambiguidade e a necessidade de indicar mais caracteres especiais como \, a fim de eliminar a possibilidade de que o comando tome meu arquivo.txt como dois parâmetros no lugar de um só.

Vamos Descobrindo pouco a pouco  as diferentes  opções. Command é  o único parâmetro obrigatório e representa o comando a executar. No modo de trabalho mais simples de EXEC, este executa o comando que indiquemos e se libera dele. Agora vamos criar um projeto de console com Gambas. Para ele, adicionaremos um módulo de inicio e, como único código escrevemos:
PUBLIC SUB Main()

EXEC [ "ls" ,  "-l" ]

END

Ao executa-lo lançamos o comando ls com o parâmetro -l obtemos uma lista dos arquivos da pasta atual em formato longo. Observamos que a nossa matriz de cadeias está indicada diretamente no comando; poderíamos ter feito o programa também assim:

PUBLIC SUB Main()

DIM sCad  AS NEW String [ ]

sCad.Add ( "ls" )

sCad.Add ( "-l" )

EXEC  sCad

END
Porem o interpretador do Gambas é capaz de reconhecer uma matriz indicada nas cadeias entre colchetes e, dessa forma, nos livramos de umas quantas linhas de código.

Vimos até aqui tudo o que fazer para o Gambas executar um novo processo, passando-lhes os parâmetros, e livrando-se dele. Executando-o de forma assíncrona, quer dizer, o programa Gambas segue seu curso sem esperar que o processo filho finalize. Isto pode ser um inconveniente se tivermos que sincronizar, ou esperar que o processo acabe, antes de continuar com a instrução seguinte. Podemos realizar esta tarefa de três maneiras que vemos a seguir.


HOME



Cópia literal

Extraído do livro “GAMBAS, programação visual com software Livre”, da editora EDIT LIN EDITORIAL S.L,  dos autores  Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini

LICENSA DESTE DOCUMENTO


É permitido a cópia e distribuição da totalidade ou parte desta obra sem fins lucrativo. Toda cópia total ou parcial devera expressar o nome do autor e da editora e incluir esta mesma licença, adicionando se é uma cópia literal “Cópia literal”. Se é autorizada a modificação e tradução da obra  sem fins lucrativo sempre se deve constar na obra resultante  a modificação o nome da obra original o autor da obra original e o nome da editora e a obra resultante também deverá ser livremente reproduzida, distribuída, ao publico e transformada em termos similares ao exposto nesta licença.

Tradução

Cientista
 (Antonio Sousa)