[Cascavel-pm] Manipulação de arquivo

Thomas Britis thomas em tcnet.com.br
Segunda Outubro 23 16:07:28 PDT 2006


my (@dados);
my ($nome) = $ARGV[0]; # Recebe o nome como primeiro argumento
open (F, "<Agenda");
while (<F>) {
	chomp();
	if (/^$nome/i) {
		@dados = split (/:/, $_);
		last;
	}
}
if ($dados[0]) {
	print "Nome:\t$dados[0]\n";
	print "End:\t$dados[1]\n";
	print "Bairro:\t$dados[2]\n";
	print "Estado:\t$dados[3]\n";
	print "Fone:\t$dados[4]\n";
} else {
	print "Dados indisponíveis.\n";
}

Daniel Vinciguerra wrote:
> Caros amogos... Preciso mais uma vez de vossa ajuda... =)
> 
> tenho um arquivo chamado .Agenda e estou codando um Script em Perl/Tk para 
> aacessar esse arquivo e
> procurar por um determinado nome ou trecho dela para uma consulta...
> 
> O arquivo esta organizado da seguinte forma...
> 
> ############### EXPLO DE AGENDA
> Daniel:Av.3, 234:Ipiranga:SP:62841234
> 
> Rosa:Av dos Tamares:São Bento:SP:62435145
> 
> ############### FIM DO EXPLO
> 
> ou seja cada cadastro esta em uma linha e as informações separadas por : 
> (dois pontos)
> 
> No programa em uma caixa de texto ao digitar Daniel ele me exibirá as 
> informações relacionadas a estes
> cadastro cujo nome é Daniel... por exmplo:
> 
> # Ao procurar por Daniel o resultado seria....
> 
> Nome:   Daniel
> End:      Av.3, 234
> Bairro:   Ipiranga
> Estado: SP
> Fone:     62841234
> 
> 
> Como posso estar fazendo isso... jah fiz algo mais não esta dando muito 
> certo.... =S
> 
> Obrigado...
> 
> 
> ######## Exemplo do meu codigo.... #############
> sub consulta(){
> 
> 
> open(AGENDA, $agenda) || die "Não é possível abrir $agenda :\n$!";
> 
>   cabecalho_cons();
> 
>   $opcao = <STDIN>;
> 
>   if    ($opcao =~ /n/i) { $consulta = "nome"}
> 
>   elsif ($opcao =~ /c/i) { $consulta = "coments"}
> 
>   elsif ($opcao =~ /s|\n/i) { cabecalho_main()};
> 
>   print "Digite a palavra-chave :";
>   chomp($key = <STDIN>);
> 
>   $achados = 0;
> 
>   while ( <AGENDA> ) {
> 
>       chomp;
>       ($nome, $endereco, $cidade, $fone, $email, $coments) = split(/:/);
> 
> ## fazendo $$consulta -> $nome pois $consulta="nome"
> ## ou então $$consulta -> $coments pois $consulta="coments"
>       if ( $$consulta =~ /\s*\w*$key\s*\w*/i){
> 	  write();
> 	  $achados += 1;
>       }
>   }
> 
>   if ($achados == 0) {print "\nNada encontrado\n\n"};
> 
>   <STDIN>;
> 
>   close(AGENDA);
> 
>   cabecalho_main();
> }
> 
> ################### Fim do exemplo ##########################
> 
> _________________________________________________________________
> Chegou o Windows Live Spaces com rede social. Confira 
> http://spaces.live.com/
> 
> _______________________________________________
> 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