[Cascavel-pm] manipulacao de dados em variavel
Alceu R. de Freitas Jr.
glasswalk3r em yahoo.com.br
Quarta Julho 27 06:40:21 PDT 2005
--- Tarik Gregorio <tgregorio7 em gmail.com> escreveu:
> To com uma duvida, tenho uma variavel $dados que
> contem os dados abaixo:
>
>
> CODIGO DESCRICAO
> ==========
> ==================================================
>
> 1234 TESTE
>
> Preciso pegar somente o 1234 e TESTE e separar em
> duas variaveis
> diferentes. Nao estou conseguindo fazer isso, alguem
> pode me ajudar??
Estou assumindo que o cabeçalho não faz parte do
problema, ok?
Supondo que a variável $dados contenha:
1234 TESTE
e que o espaço entre elas seja formado por espaços
mesmo, uma solução seria essa:
$dados =~ s/\s+/|/g;
@lista_dados = split( /|/, $dados );
Isso simplesmente elimina os espaços entre as duas
strings e troca eles por um pipe ("|"). O pipe passa a
ser o "separador" de dados. A função split() vai pegar
cada ítem "separado" pelo pipe e adicionar a um índice
do array @lista_dados. Você poderia adicionar isso a
um hash também de forma semelhante.
A forma de criar essa lista de dados pode variar
bastante... por exemplo, se você obteve a string de
$dados lendo de um arquivo texto, teria que fazer isso
primeiro:
chomp( $dados );
para remover a quebra de linha. Se você tiver espaços
antes e depois da string, pode ter que eliminar estar
também antes de usar o split():
$dados =~ s/^\s+//g;
$dados =~ s/\s+$//g;
Existe muitas formas de fazer isso com Perl, uma vez
que esse é um problema bastante comum. Recomendo você
estudar:
perldoc perlre
perldoc -f split
perldoc -f join
perldoc -f map
perldoc -f grep
Dois livros que vão lhe ajudar bastante:
Learning Perl - editora O'Reilly (somente em inglês)
Gerenciamento de dados com Perl - em português,
procure em algum site de livros.
[]'s
Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1
__________________________________________________
Converse com seus amigos em tempo real com o Yahoo! Messenger
http://br.download.yahoo.com/messenger/
Mais detalhes sobre a lista de discussão Cascavel-pm