#!/usr/bin/perl -w # Read NFM files # editions Systeme D, 2007 # public domain # ===== Read refdata.dat open (DATA ,"refdata.dat") or die "Can't open refdata.dat: $!\n"; # ----- Find blocks seek (DATA,0x0E,0); read (DATA,$numblocks,1); $numblocks=ord $numblocks; for ($i=0; $i<$numblocks; $i++) { read (DATA,$block,13); $type=substr($block,0,3); push @types,$type; $fieldlen {$type}=unpack("v",substr($block,3,2)); $numfields{$type}=unpack("V",substr($block,5,4)); $offset {$type}=unpack("V",substr($block,9,4)); } # ----- Read each block foreach $type (@types) { print "\nReading $type\n\n"; open (OUTFILE,">$type.ref.txt"); seek (DATA,$offset{$type},0); for ($i=0; $i<$numfields{$type}; $i++) { read (DATA,$a,$fieldlen{$type}); print OUTFILE "$a\n"; } close OUTFILE; } close DATA; exit;