#!/afs/athena/contrib/perl/perl $RCS_ID = '$Id: lst2tbl,v 2.2 1992/06/20 11:50:03 hobbs Exp $' ; ($pgm = $0) =~ s-.*/-- ; $HelpInfo = <){ # the header if( $EDT && /^\.\.>>>/ ){ print $_ ; next ; } # control line if( /^#\s|^\s+#/ ){ print $_ ; next ; } # comment if( /^\s*$/ ){ next if ! $inhdr ; last ; } # end of section $inhdr++ ; chop ; ($col, $data) = split( /\|/, $_ ) ; $col =~ s/^\s+// ; # remove lead, trail space chars $col =~ s/\s+$// ; # from $col & $data $data =~ s/^\s+// ; $data =~ s/\s+$// ; $data =~ s/\t/ /g ; # just in case ... while(){ last if /\|/ || /^\s*$/ ; chop ; $_ =~ s/^\s+// ; $_ =~ s/\s+$// ; $_ =~ s/\t/ /g ; # just in case ... $data .= ' ' . $_ ; } $colx{$col} = $ndx ; $rec[$ndx] = $col ; $tmp[$ndx] = $data ; $recmax = $ndx++ ; redo ; } &outrec ; @rec = @tmp ; &outrec ; $pblank++ ; while(){ # the data if( $EDT && /^\.\.>>>/ ){ print $_ ; next ; } if( /^\s*$/ ){ # blank line &outrec if ! $pblank ; $pblank++ ; next ; } $pblank = "" ; chop ; ($col, $data) = split( /\|/, $_ ) ; $col =~ s/^\s+// ; # remove lead, trail space chars $col =~ s/\s+$// ; # from $col & $data $data =~ s/^\s+// ; $data =~ s/\s+$// ; $data =~ s/\t/ /g ; # just in case ... while(){ if( $EDT && /^\.\.>>>/ ){ print $_ ; next ; } last if /\|/ || /^\s*$/ ; chop ; $_ =~ s/^\s+// ; $_ =~ s/\s+$// ; $_ =~ s/\t/ /g ; # just in case ... $data .= ' ' . $_ ; } $c = $colx{$col} ; if( $c eq "" ){ warn "Bad column name: $col\n" ; push( @rec, $data ) ; } else{ $rec[$c] = $data ; } redo ; } &outrec if ! $pblank ; sub outrec { # output a record in RDB format print join( "\t", @rec ), "\n" ; for $r (@rec){ $r = "" ; } $#rec = $recmax ; }