[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