[Cascavel-pm] linguagem perl+ms-dos

Igor Sutton Lopes igor.sutton em gmail.com
Quinta Julho 6 10:07:21 PDT 2006


Fabio,

Aqui esta uma maneira um pouco mais didatica (nao testado):

use strict;
use warnings;

# abre o arquivo e armazena o file handle em $fh. eh melhor utilizar
# uma variavel lexica para armazenar este fh, pois voce pode querer
# passa-lo como argumento em uma funcao sem muitos malabarismos.
open my $fh, "arquivo.txt" or die "Problemas ao abrir arquivo: $!";

# itera o arquivo linha a linha. irah iterar enquanto defined devolver true. eh
# melhor utilizar while ao inves de foreach, pois foreach irah gerar um array
# com o conteudo de todo o arquivo, que pode utilizar muita memoria caso 
# o arquivo seja muito grande.
while (defined(my $line = <$fh>)) {

    # executa a funcao system(), passando uma lista com argumentos. verifica
    # se eh devolvido 0 (caso de sucesso)
    if (system("cscript", "c:/windows/system32/prnmgr.vbs", "-ac", "-p",
    $line) != 0)
    {
        # mostra um erro caso o programa nao seja executado corretamente.
        warn "Problemas ao executar programa: $!";
    }
}

# fecha file handle.
close $fh or warn "Problemas ao fechar arquivo: $!";

Igor.


fabio nery <fcosta_nery em yahoo.com.br> writes:

> Ola Ivo,
>  
> E mais ou menos isso, olha o codigo em pascal :
>  
> //inicio-codigo
> Begin
>   
>    Assign(file,NomeAuto);
>    Reset(file); //abre o arquivo para leitura;
>    While not eof(file) do begin  //enquanto nao for o final do arquivo
>      Readln(file,linha); //le do arquivo e desce uma linha. O conteúdo lido é
> transferido para a variável linha
>     
>      //aqui deve chamar o comando do DOS e passar o parametro linha
>      //comando a ser passado ; cscript c:\windows\system32\prnmngr.vbs -ac -p
> linha
>    End;
>    Closefile(f);
> End.
>  
> //fim-codigo
>
> Valeu,
>  
> Fabio
>
> Ivo Peixinho <ivocarv em cais.rnp.br> escreveu:
>
>     Nao sei se e' exatamente o que voce quer, mas:
>    
>     open(ARQ,"/caminho/do/arquivo");
>    
>     while() {
>    
>     system("/caminho/comando/ms-dos $_");
>     }
>    
>     Ou se voce quer armazenar o resultado, voce pode trocar o system por:
>    
>     @resut=`/caminho/comando/ms-dos $_`;
>    
>     Ivo.
>    
>     On Tue, 4 Jul 2006, fabio nery wrote:
>    
>     > Ola a todos,
>     >
>     > Gostaria de uma ajuda do grupo com um problema que estou tendo, quero ler um
>     arquivo e guardar cada linha lida em uma variavel e depois chamar um comando
>     ms-dos e passar esta variavel como parametro para o comando ms-dos, tem como
>     fazer isto em perl? Espero sinceramente que possam me ajudar.
>     >
>     > Obrigado a todos,
>     >
>     > Fabio
>     >
>     >
>     > ---------------------------------
>     > Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
>     _______________________________________________
>     Cascavel-pm mailing list
>     Cascavel-pm em pm.org
>     http://mail.pm.org/mailman/listinfo/cascavel-pm
>
> ----------------------------------------------------------------------------------
> Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. 
> Registre seu aparelho agora!
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm


Mais detalhes sobre a lista de discussão Cascavel-pm