[Cascavel-pm] Separando campos

Veronica Soraia veronica.soara em gmail.com
Segunda Março 19 07:39:27 PDT 2007


olá tenho um problema , não estou conseguindo resolver (sou iniciante
rsrsr), é o seguinte, tenho um arquivo q vem com o endereço junto com
essas duas opções : AV 29 JUNHO 00602, e , R MARGARIDAS 13 QD8 C 13.
Tenho que separar esses  registros em campos como Endereço,numero,
complemento com o algoritmo q fiz no segundo registro ele pega normal:
Endereço : R MARGARIDAS , numero:13, complemento: C 13 . Mas no
primeiro registro ele pega o "29" tratando como numero e o "JUNHO
00602" tratando como complemento , ou seja ele só pega o AV como
endereço,o correto seria Endereço:AV 29 junho e numero :00602.Para
todos os casos com numero após um logradouro ele não filtra certo.

Alguem pode me ajudar ! :-) o algoritmo q fiz é esse :

{
	@locendtemp	=	split(/\s/,$_);
	
	$n	=	0;
	
	foreach $campo(@locendtemp)
	{
		$campo	=	strtrim($campo);
		
		if($n == 0)
		{
			$locend	=	$campo."  ";        #pega endereço
		}
		elsif (($campo !~ /\d/) and (not $locnum))
		{
			$locend	.=	$campo." ";         #endereço
		}
		elsif (($campo =~ /\d/) and (not $locnum))
		{
			$locnum	=	$campo;     #numero
		}
		elsif (($campo !~ /\d/) and ($locnum))
		{
			$loccpo	.=	$campo."  ";       #complemento
		}
		elsif (($campo =~ /\d/) and ($locnum))
		{
			$loccpo	.=	$campo."  ";       #complemento
		}
		
		++$n;
	}
	
	return ($locend,$locnum,$loccpo);
}


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