[Cascavel-pm] Manipulação de arquivo

Thomas Britis thomas em tcnet.com.br
Quinta Outubro 26 09:10:05 PDT 2006


Mesmo eu não tendo testado antes, testei agora e está funcionando como 
esperado.

	Novamente segue o código:

#!/usr/bin/perl
#

my ($nome) = $ARGV[0] || die "Uso: $0 [palavra] [arquivo]\n";
my ($delim) = ":";
my ($linha);
my ($achei) = 0;
my ($x);

open (F, "<$ARGV[1]") || die "Arquivo $ARGV[1] nao pode ser aberto: $!";
while (<F>) {
         $linha++;
         $x = 0;
         while ((substr ($nome, $x, 1) eq substr ($_, $x, 1)) && (substr 
($_, $x, 1) ne $delim)) { $x++; }
         if ($x eq length ($nome)) {
                 print "Achei em linha $linha\n";
                 $achei++;
                 last;
         }
}

print "Nao achei\n" if (!$achei);


Diego Mendes Teixeira wrote:
> Thomas,
> 
> Esse codigo nao ta funcionando, e perai, do jeito que ta eu nao to 
> abrindo o arquivo e a condição do laço? eu não teria que usar open 
> (F,$ARGV[1]) para abrir o arquivo e eu nao teria que colocar uma 
> condição while ($linha, <F>) para ler ate o final do arquivo?
> 
> Vlw
> 
> .============================================.
> Diego Mendes Teixeira - diegom em lcc.ufmg.br <mailto:diegom em lcc.ufmg.br>
> Desenvolvimento de Sistemas - LCC/CENAPAD
> Universidade Federal de Minas Gerais - UFMG
> Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910
> '============================================'
> 
> -----cascavel-pm-bounces+diegom=lcc.ufmg.br em pm.org escreveu: -----
> 
>     Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
>     De: Thomas Britis <thomas em tcnet.com.br>
>     Enviado por: cascavel-pm-bounces+diegom=lcc.ufmg.br em pm.org
>     Data: 25/10/2006 15:39
>     Assunto: Re: [Cascavel-pm] Manipulação de arquivo
> 
>     Fiz um programa (meio porco) usando a estrutura que você estava usando
>     no outro para comparação exata sem uso de expressão regular:
> 
>     my ($nome) = $ARGV[0] || die "Uso: $0 [palavra] [arquivo]\n";
>     my ($delim) = ":"; # Delimitador já que você só considera a primeira
>     parte, correto?
>     my ($linha);
>     my ($achei) = 0;
>     my ($x);
> 
>     open (F, "while () {
>             $linha++;
>             $x = 0;
>             while ((substr ($nome, $x, 1) eq substr ($_, $x, 1)) && (substr
>     ($_, $x, 1) ne $delim)) { $x++; }
>             if ($x eq length ($nome)) {
>                     print "Achei em linha $linha\n";
>                     $achei++;
>                     last;
>             }
>     }
> 
>     print "Nao achei\n" if (!$achei);
> 
>     -- 
>     Thomas Storino Britis
>     TCNet Informatica e Telecomunicacoes LTDA
>     _______________________________________________
>     Cascavel-pm mailing list
>     Cascavel-pm em pm.org
>     http://mail.pm.org/mailman/listinfo/cascavel-pm
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm

-- 
Thomas Storino Britis
TCNet Informatica e Telecomunicacoes LTDA


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