[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