276 |
my @FieldLEN; |
my @FieldLEN; |
277 |
my @FieldTAG; |
my @FieldTAG; |
278 |
|
|
279 |
|
read($self->{'fileMST'}, $buff, 6 * $NVF); |
280 |
|
|
281 |
|
my $fld_len = 0; |
282 |
|
|
283 |
for (my $i = 0 ; $i < $NVF ; $i++) { |
for (my $i = 0 ; $i < $NVF ; $i++) { |
284 |
|
|
285 |
# $TAG=$self->Read16($fileMST); |
# $TAG=$self->Read16($fileMST); |
286 |
# $POS=$self->Read16($fileMST); |
# $POS=$self->Read16($fileMST); |
287 |
# $LEN=$self->Read16($fileMST); |
# $LEN=$self->Read16($fileMST); |
288 |
|
|
289 |
read($self->{'fileMST'}, $buff, 6); |
my ($TAG,$POS,$LEN) = unpack("sss", substr($buff,$i * 6, 6)); |
|
my ($TAG,$POS,$LEN) = unpack("sss", $buff); |
|
290 |
|
|
291 |
print "TAG: $TAG POS: $POS LEN: $LEN\n" if ($self->{debug}); |
print "TAG: $TAG POS: $POS LEN: $LEN\n" if ($self->{debug}); |
292 |
|
|
303 |
push @FieldTAG,$TAG; |
push @FieldTAG,$TAG; |
304 |
push @FieldPOS,$POS; |
push @FieldPOS,$POS; |
305 |
push @FieldLEN,$LEN; |
push @FieldLEN,$LEN; |
306 |
|
|
307 |
|
$fld_len += $LEN; |
308 |
} |
} |
309 |
|
|
310 |
# Get Variable Fields |
# Get Variable Fields |
311 |
|
|
312 |
delete $self->{record}; |
delete $self->{record}; |
313 |
|
|
314 |
|
read($self->{'fileMST'},$buff,$fld_len); |
315 |
|
|
316 |
for (my $i = 0 ; $i < $NVF ; $i++) { |
for (my $i = 0 ; $i < $NVF ; $i++) { |
317 |
my $rec; |
push @{$self->{record}->{$FieldTAG[$i]}}, substr($buff,$FieldPOS[$i],$FieldLEN[$i]); |
|
read($self->{'fileMST'},$rec,$FieldLEN[$i]); |
|
|
push @{$self->{record}->{$FieldTAG[$i]}}, $rec; |
|
318 |
} |
} |
319 |
close(fileMST); |
close(fileMST); |
320 |
|
|