#!/bin/sh
if test $# -lt 1 -o \( "$1" = '-h' -o "$1" = '--help' \)
then 
cat << !!!

 vsdat2dat   --   Version 1.0
 Usage: vsdat2dat viewer_search_file [ dat_file ]

 Vsdat2dat konvertiert die Viewer-Search-Datei vsdat.htm aus
 dem html-Verzeichnis der aktuellen Heise-CD-ROMs in das Format 
 der Jahresinhaltsverzeichnisse, wie es auf den CDs bis 1998
 benutzt wurde und das von den CGI-Skripten gelesen werden kann.
 Wennn kein zweites Kommandozeilenargument angegeben ist, wird
 die Ausgabedatei ctJJ.dat oder ixJJ.dat im aktuellen Verzeichnis
 angelegt, sonst wird die angegebene Datei benutzt.  JJ steht hier
 für das zweistellige Jahreszahlenkürzel.

!!!
exit
fi

if [ ! -r $1 ]
then
   echo "Kann die Eingabedatei: ${1} nicht lesen."
   exit 1
fi

if [ -z $2 ]
then 
   DEST="empty"
else
   DEST=$2
fi

awk ' 	BEGIN  { LINE=3 
		 FN="'${DEST}'"
	       }
	/<HR>/ { LINE=0
		 idx=index($0,"HREF=") 
		 dates=substr($0,idx+6)
		 gsub("\">.*$","",dates)
		 num=split(dates,numbers,"/")
		 YR=numbers[1]
		 VL=numbers[2]
		 PG=numbers[3]
		 AT=numbers[4]
		 gsub("<[^>]*>","|",$0)
		 num=split($0,entries,"|")
		 RB=entries[2]
		 MG=substr(entries[4],1,1)
	       }
	       { LINE=LINE+1
	         if ( LINE == 2 ) {
	              gsub("<[^>]*>","|",$0)
		      num=split($0,entries,"|")
	              AU=entries[1]
	              gsub(": *","",AU)
	              TI=entries[2]
	              UT=entries[3]
	              gsub("^ *, *","",UT)
	         }
	         if ( LINE == 3 ) {
	              KW=$0
	              if (KW == "") gsub("- *$","",RB)
		      if (MG == "i") MG="ix"; else MG="ct"
		      if ( FN == "empty") FN=MG YR ".dat" 
		      printf("%s|%s|%s|%02d|%02d|%03d|%s|||%s|%s%s\n",TI, UT, MG, YR, VL, PG, AU, AT, RB, KW) >>FN 
		 }
	       } ' $1

