#! @PERL@
#-*- perl -*-
# Convert fixed width format to R/S "table"
# By KH <Kurt.Hornik@ci.tuwien.ac.at>, based on a script by Doug Bates
# Usage: fwf2table -f FORMAT [-s SEP] FILE,
# where FORMAT is the format string, typically "Ax Ay Az ..." with x, y,
# z etc being the widths of the columns and `A' means that the field is
# to be interpreted as an ASCII character string with trailing white
# space suppressed, and SEP is the record separator to be inserted in
# the output (default is a space).

require 5.000;
use Getopt::Std;

getopts("f:s:");
die "A format string must be specified.\n" unless $opt_f;
$sep = $opt_s ? $opt_s : " ";
while (<>) {
    undef @rec;
    foreach (unpack($opt_f, $_)) {
	s/^\s+//;
	if (/\s/) {
	    $_ = "\"" . $_ . "\"";
	}
	elsif (/^$/) {
	    $_ = "NA";
	}
	push(@rec, $_);
    }
    print(join($sep, @rec), "\n");
}