[Cascavel-pm] busca em arquivo

Diego Mendes Teixeira diegom em lcc.ufmg.br
Sexta Outubro 20 10:41:20 PDT 2006


EU JA FIZ O DE EXPRESSAO REGULAR QUE ESTA FUNCIONANDO SIM, FALTA NA BUSCA
APROXIMADA O PROGRAMA NAO FAZER DISTINCAO ENTRE LETRAS MAIUSCULAS E
MINUSCULAS. JA NO OUTRO PROGRAMA EU NAO SEI COMO ADICIONAR O TEXTO EM UM
ARRAY E FAZER A BUSCA PELA PALAVRA.... AINDA NAO COMECEI....

==================================================================================================================================

#!/usr/local/bin/perl

#Programa de busca de casamento de padrao em perl com uso de expressoes
regulares

print "\nEscolha a opcão de busca e a palavra a ser buscada(passagem por
argumento)\n\n";
print "0 - Busca exata\n";
print "1 - Busca aproximada\n\n";
print "Exemplo: perl [programa] [tipo de busca] [palavra]\n\n";

foreach $argument(@ARGV){ #carrega um argumento por vez para a variavel
$argument
   push(@arguments,$argument); #adiciona o argumento ao array @arguments
}

if ($arguments[0] == '0'){ #Testa o primeiro argumento, se '0' entao busca
exata!

            $palavra = $arguments[1];#a palavra é recuperada o array
            $aux = 0;#linha da ocorrencia da palavra
            $aux2 = 0; #se ocorrencia da palavra
            open( ARQUIVO, "texto.txt" ) || die "Erro ao abrir arquivo
texto.txt\n"; #abre o arquivo que sera lido
            while ( $linha = <ARQUIVO> ) { #laço que carrega as linhas do
arquivo
                  ++$aux;#variavel que guarda a linha que esta sendo lida
                  if ( $linha =~ /\b$palavra\b/ ) { #testa se a palavra
esta na linha referenciada
                        print "Linha:".$aux."\n";#imprime a linha caso
tenha encontrado a palavra
                          $aux2 = 1; #seta aux2 indicando que pelo menos
uma ocorrencia da palavra foi encontrada
                  }
            }
            close ( ARQUIVO ); #fecha o arquivo

            if ($aux2 == 0){ #testa se aux2 foi setado
                  print "Não foi encontrado nenhuma ocorrência da palavra:
".$palavra."\n\n";
              }
}
else { #Busca aproximada!

            $palavra = $arguments[1];#a palavra é recuperada o array
            $aux = 0;#linha da ocorrencia da palavra
            $aux2 = 0; #se ocorrencia da palavra
            open( ARQUIVO, "texto.txt" ) || die "Erro ao abrir arquivo
texto.txt\n"; #abre o arquivo que sera lido
            while ( $linha = <ARQUIVO> ) { #laço que carrega as linhas do
arquivo
                  ++$aux;#variavel que guarda a linha que esta sendo lida
                  if (( $linha =~ /$palavra/ ) || ($linhaMaus =~/$palavra/)
|| ($linhaMin =~/$palavra/)){ #testa se a palavra esta na linha
referenciada
                        print "Linha:".$aux."\n";#imprime a linha caso
tenha encontrado a palavra
                          $aux2 = 1; #seta aux2 indicando que pelo menos
uma ocorrencia da palavra foi encontrada
                  }
            }
            close ( ARQUIVO ); #fecha o arquivo

            if ($aux2 == 0){ #testa se aux2 foi setado
                  print "Não foi encontrado nenhuma ocorrência da palavra:
".$palavra."\n\n";
              }

}



==================================================================================================================================

VLW, AGUARDO RETORNO.........

(See attached file: erPerl.pl)

.============================================.
   Diego Mendes Teixeira   -  diegom em lcc.ufmg.br
   Setor de Desenvolvimento  -  UFMG - LCC/CENAPAD
   Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910
'============================================'


                                                                           
             "Gabriel Vieira"                                              
             <gabriel.vieira em g                                             
             mail.com>                                                Para 
             Enviado Por:              "Cascavel Perl Mongers"             
             cascavel-pm-bounc         <cascavel-pm em pm.org>                
             es+diegom=lcc.ufm                                          cc 
             g.br em pm.org                                                   
                                                                   Assunto 
                                       Re: [Cascavel-pm] busca em arquivo  
             20/10/2006 14:34                                              
                                                                           
                                                                           
             Favor responder a                                             
               Cascavel Perl                                               
                  Mongers                                                  
             <cascavel-pm em pm.o                                             
                    rg>                                                    
                                                                           
                                                                           




Você já começou?
Mostra o que já fez que lhe ajudaremos. Não podemos fazer todo um trabalho
por você né. :)

No aguardo,

Gabriel Vieira

On 10/20/06, Diego Mendes Teixeira <diegom em lcc.ufmg.br> wrote:


      Boa Tarde,

      Tenho que fazer um trabalho em perl para a máteria de linguagens de
      programação.

      O objetivo deste trabalho é projetar e implementar um sistema de
      programas para recuperar
      ocorrências de padrões em arquivos constituídos de documentos,
      utilizando algoritmos lineares
      de busca seqüencial.

      O professor pede que eu desenvolva 2 algoritmos:

      1 - BMH em Perl com arranjo dinâmico em heap
      2 - Casamento em Perl com uso de expressões regulares

      O sistema recebe do usuário uma cadeia de caracteres, se a busca é
      exata (k=0) ou aproximada
      (0 < k < m), e imprime todas as ocorrências do padrão no texto.

      Alguem poderia me dar uma ajuda???????

      Vlw


      .============================================.
      Diego Mendes Teixeira - diegom em lcc.ufmg.br
      Setor de Desenvolvimento - UFMG - LCC/CENAPAD
      Cel: +55(31)8842-9951 - Tel(trab): +55(31)34994910
      '============================================'



      _______________________________________________
      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

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061020/2c2fd197/attachment-0001.html 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : graycol.gif
Tipo  : image/gif
Tam   : 105 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061020/2c2fd197/attachment-0003.gif 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : pic26500.gif
Tipo  : image/gif
Tam   : 1255 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061020/2c2fd197/attachment-0004.gif 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : ecblank.gif
Tipo  : image/gif
Tam   : 45 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061020/2c2fd197/attachment-0005.gif 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : erPerl.pl
Tipo  : application/octet-stream
Tam   : 2358 bytes
Descr.: não disponível
Url   : http://mail.pm.org/pipermail/cascavel-pm/attachments/20061020/2c2fd197/attachment-0001.obj 


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