[Cascavel-pm] sequências de dados
Flavio Bei
flaviobei em gmail.com
Quarta Setembro 5 08:59:44 PDT 2007
ae pessoal, blz? to com o seguinte problema...
o código a seguir abre um txt e faz algumas verificações, pra testar a
consistencia do mesmo, está funcionando de boa, mas preciso de uma
função a mais, que não consigo achar um jeito de fazer, hj ele está
assim:
isso é uma parte do meio, to usando strict e warnings...
o arquivo é + - assim
H445090 - informações do header
P009988373xxxxxnome....... - informações do cliente
I97934857985755454 - informações dos pedidos do cliente
(vários I por cliente)
I97934857985755454
I97934857985755454
I97934857985755454
P009988373xxxxxnome.......
I97934857985755454
I97934857985755454
T0000000200000006 - informações sobre o número de clientes e pedidos
hoje eu só pego o número de clientes e confiro com o trailer da ultima
linha, se bater, processo o arquivo para higienização e impressão....
mas agora inventaram que preciso também saber a quantidade de pedidos
(I) por cliente (P)... dai to tentando várias coisas, mas não consigo
relacionar as linhas I com o cliente da linha P acima.... alguma
sugestão?
#=================================================
opendir( DIR, $caminho ) || die "Não pude abrir o diretorio $!\n";
my @files = readdir( DIR );
closedir( DIR );
foreach( @files ){
$f = $_;
my $completo = $caminho.$f;
my $extensao = substr($f, -3,3);
my $trailer = ();
my $contador = ();
if ($extensao eq ".ok"){
open($arquivo, $completo);
while ($linha = <$arquivo>) {
#verifica o tipo da linha pelo primeiro caractere (P - cliente,
I - item, T - trailer)
$tipo = substr $linha, 0, 1;
if ($tipo eq "P"){
my $nome = substr($linha, 11,49);
$contador->{$f} ++;
}elsif ($tipo eq "T"){
$trailer->{$f} = substr($linha, 1, 8);
}
}
if ($contador->{$f} == $trailer->{$f}){.....
#se verificar o trailer e o número de registros lidos forem iguais
daqui pra frente blz...-
#=================================================
--
--
Flávio Bei
Webdesigner
(11) 8964 5315
Mais detalhes sobre a lista de discussão Cascavel-pm