:[000000...]
$! The procedure looks for the files
$! FREEWARE_README.TXT, and
$! FREEWARE_DEMO.TXT
$! in the directory under the current default directory
$!
$! Intermediate File
$! A work file, CD_HTML.WRK, is created.
$! It is sorted to create the category list.
$! The format of this file is as follows:
$!
$! 1-24 The CATEGORY from the FREEWARE_README.TXT.
$! 25-48 The DIRECTORY wher the FREEWARE_README.TXT was found.
$! 49-72 The PACKAGE NAME from the FREEWARE_README.TXT.
$! 73 "Y" if FREEWARE_DEOM.TXT was found; "N" otherwise.
$! 74-? The DESCRIPTION from the FREEWARE_README.TXT.
$!
$! This file, including sorted variants, is created in
$! the current default directory.
$!
$! Output FREEWARE_ALPHA.HTML -- listing packages alphabetically
$! REEWARE_CATEG.HTML -- listing packages by category
$!
$! These files are created in the current default directory
$!
$!
$!
$! Created
$! 2002-SEP-20 Charlie Hammond
$!
$! Modified
$!
$! ===============================================================
$!
$ on error then goto err_exit
$ on control_y then goto err_exit
$!
$!
$ prt_def_dir = f$directory() - "]" + "."
$!
$ close /nolog wrk_fil
$ open /write wrk_fil cd_html.wrk
$!
$loop1:
$ rea_nam = f$search("[.*]freeware_readme.txt;",1)
$ if rea_nam .eqs. "" then goto sort1
$ dir_nam = f$parse(rea_nam,,,"directory") - prt_def_dir
$ dem_nam = f$parse("freeware_demo.txt;",rea_nam)
$ dem_nam = f$search(dem_nam,2)
$ if dem_nam .eqs. ""
$ then
$ pac_dem = "N"
$ else
$ pac_dem = "Y"
$ endif
$!
$ close /nolog rea_fil
$ open /error=loop1 rea_fil 'rea_nam'
$ read rea_fil rea_rec
$ close rea_fil
$!
$! Format of rea_rec is
$! PACKAGE_NAME, CATEGORY, ONE_LINE_DESCRIPTION
$! All of these could include imbedded blanks!
$! PACKAGE_NAME and CATEGORY must be upcased.
$!
$ pac_nam = f$element(0,",",rea_rec)
$ rea_rec = rea_rec - pac_nam - ","
$ pac_nam = f$edit(pac_nam,"TRIM,UPCASE")
$!
$ pac_cat = f$element(0,",",rea_rec)
$ pac_des = f$edit(rea_rec - pac_cat - ",","TRIM")
$ pac_cat = f$edit(pac_cat,"TRIM,UPCASE")
$!
$ write wrk_fil f$fao("!24AS!24AS!24AS!1AS!AS", -
pac_cat,dir_nam,pac_nam,pac_dem,pac_des)
$!
$ goto loop1
$!
$!
$! ================================================
$!
$! Subroutine to extract fields from wrk_rec
$!
$wrk_fields:
$!
$ wrk_cat = f$edit(f$extract(0,24,wrk_rec),"TRIM")
$!
$ wrk_dir = f$edit(f$extract(24,24,wrk_rec),"TRIM")
$ xxx_dir = wrk_dir - "[" - "]"
$!
$ wrk_nam = f$edit(f$extract(48,24,wrk_rec),"TRIM")
$!
$ wrk_dem = f$extract(72,1,wrk_rec)
$!
$ wrk_des = f$edit(f$extract(73,256,wrk_rec),"TRIM")
$!
$ return !from wrk_fields subroutine
$!
$! ================================================
$!
$!
$! Sort wrk_fil by pac_nam
$!
$sort1:
$!
$ close wrk_fil
$!
$ sort cd_html.wrk cd_html.nam /key=(pos:49,siz:24)
$!
$ close/nolog html_file
$ create FREEWARE_ALPHA.HTML
$ append sys$input FREEWARE_ALPHA.HTML
$DECK
Alphabetical Freeware Listing
[Main Page]
[Category Listing]
Category |
Directory |
Name |
DESCRIPTION |
Demo? |
$EOD
$!
$ open /append html_file FREEWARE_ALPHA.HTML
$!
$ close /nolog srt_fil
$ open /read srt_fil cd_html.nam
$!
$loop_nam:
$!
$ read /end=end_nam srt_fil wrk_rec
$ gosub wrk_fields
$!
$ write html_file ""
$ write html_file ""
$ write html_file "''wrk_cat' | "
$ write html_file "''wrk_dir' | "
$ write html_file -
"''wrk_nam' | "
$ write html_file "''wrk_des' | "
$ if wrk_dem .eqs. "Y" then write html_file -
"Yes | "
$ write html_file "
"
$!
$ goto loop_nam
$!
$end_nam:
$!
$ close srt_fil
$ delete cd_html.nam;*
$!
$ close html_file
$ append sys$input FREEWARE_ALPHA.HTML
$DECK
[Back to TOP]
[Main Page]
[Category Listing]
$EOD
$!
$!
$! ================================================
$!
$! Sort wrk_fil by pac_cat
$!
$!sort2:
$!
$ sort cd_html.wrk cd_html.cat /key=(pos:1,siz:24)
$ delete cd_html.wrk;*
$!
$ close/nolog html_file
$ create FREEWARE_CATEG.HTML
$ append sys$input FREEWARE_CATEG.HTML
$DECK
Freeware Listing by Category
[Main Page]
[Alphabetical Listing]
Select from the following categories:
$EOD
$!
$ open /append html_file FREEWARE_CATEG.HTML
$!
$ close /nolog srt_fil
$ open /read srt_fil cd_html.cat
$!
$ first_cat = 0
$ prior_cat = ""
$!
$loop_cat1:
$!
$ read /end=end_cat1 srt_fil wrk_rec
$ gosub wrk_fields
$!
$ if .not. first_cat
$ then
$ first_cat = 1
$ prior_cat = "ZZZZ"
$ endif
$!
$ if wrk_cat .nes. prior_cat
$ then
$ write html_file "- ''wrk_cat'"
$ prior_cat = wrk_cat
$ endif
$!
$ goto loop_cat1
$!
$end_cat1:
$!
$ write html_file "
"
$ close srt_fil
$ open /read srt_fil cd_html.cat
$!
$ first_cat = 0
$ prior_cat = ""
$!
$loop_cat2:
$!
$ read /end=end_cat2 srt_fil wrk_rec
$ gosub wrk_fields
$!
$ if .not. first_cat
$ then
$ first_cat = 1
$ prior_cat = "ZZZZ"
$ else
$ if wrk_cat .nes. prior_cat
$ then
$ write html_file ""
$ write html_file ""
$ write html_file "[Back to TOP]"
$ write html_file "[Main Page]"
$ write html_file -
"[Alphabetical Listing]"
$ write html_file "
"
$ endif
$ endif
$!
$ if wrk_cat .nes. prior_cat
$ then
$ write html_file ""
$ write html_file ""
$ write html_file ""
$ write html_file ""
$ write html_file "Directory | "
$ write html_file "Name | "
$ write html_file "DESCRIPTION | "
$ write html_file "Demo? | "
$ write html_file "
"
$ prior_cat = wrk_cat
$ endif
$!
$ write html_file ""
$ write html_file ""
$ write html_file "''wrk_dir' | "
$ write html_file -
"''wrk_nam' | "
$ write html_file "''wrk_des' | "
$ if wrk_dem .eqs. "Y" then write html_file -
"Yes | "
$ write html_file "
"
$!
$ goto loop_cat2
$!
$end_cat2:
$ close srt_fil
$ close html_file
$ delete cd_html.cat;*
$ append sys$input FREEWARE_CATEG.HTML
$DECK
[Back to TOP]
[Main Page]
[Alphabetical Listing]
$EOD
$!
$!
$err_exit:
$!
$ close /nolog wrk_fil
$ if f$search ("cd_htm.wrk") .nes. "" then delete cd_html.wrk;*
$!
$ close /nolog rea_fil
$!
$ close /nolog html_file
$!
$ close /nolog srt_fil
$ if f$search ("cd_html.nam") .nes. "" then delete cd_html.nam;*
$!
$ close /nolog html_file
$!
$ close /nolog srt_fil
$ if f$search ("cd_html.cat") .nes. "" then delete cd_html.cat;*
$!
$!
$ exit