# ------------------------------------------------------------------------------ # log2dll.awk # Convert Logfile to "DOWnList.Lib" script for JGAWK ver 1.0b2 # This script converts log file of ComNifty to DOWnList.lib. # # Copyright (C) 1995-1996 by voyager (voyager@sparc.club.ne.jp) # # ------------------------------------------------------------------------------ # tabstop=4 # ------------------------------------------------------------------------------ #このソースはComNiftyのログから一気にDOWnList.libを作成する。 # log sample ------------------------------------------------------------------- # # 19 先週までのお知らせ (OLDAN) /*メールがないとき #番号またはコマンド (改行でトップメニュー) /* #>SET FF OFF /* #番号またはコマンド (改行でトップメニュー) /* #>GO FMACPRO /* # #action:DELete /*メールがあるときのログ # −削除完了− /* #MAIL>GO FMACUSL /* # #>GO FMACUSL /*ページモードの時 #>SET PAGe ON /* #>LIB 1 /* # # #>SEArch LIB:1-14 DAY:60 /*日付モードの時(search day) #LIB:01....hit:2 # 60 PFG02141 96/05/27 203776 628 B StuffIt Expander 4.0.1 Installer # 59 PFG02141 96/05/27 501760 351 B DropStuff with EE 4.0 #LIB:02....hit:59 #1347 JBA02661 96/07/18 455552 22 B Simple Diary1.1 電子日記帳(inline対応版) # end log sample --------------------------------------------------------------- # # knowm bugs ------------------------------------------------------------------- # ライブラリ一覧において、80桁を越えた行がある場合、2バイトのうち後半がかけた場合、 # つまり、$84xx ~ $9Fxx の漢字ストライクホルダーの前半1バイトと改行コード(CR)の # $0Dとがつながって$0Dを正しくCRとみなしません。 # YooEdit は表示はできるのですが、Hunsoshi-Editは行が連続しているとみなします。 # また、jgawkも行が連続したものとみなします。 # つまり、ライブラリ上2個のファイルが1行に表示されます。 # # 回避方法 # Nifty 上で端末定義を80桁から132桁に変更してください。 # End knowm bugs --------------------------------------------------------------- BEGIN{ #GLOBAL VALIABLES FS = " " null = "" myForumLine_in_normal_mode = "^(>GO )[FfSs](.)+$" myForumLine_AfterMail = "^(MAIL>GO )[FfSs](.)+$" myLibraryLine_in_searchMode = "^(LIB:)(.)+$" myLibraryLine_in_PageMode = "^(>LIB )[0-9]+$" myFileLine = "^[0-9]+( )[A-Z]+[0-9]+( )[0-9]+/[0-9]+/[0-9]+( )+[0-9]+( )+[0-9]+( )[A-Z]( )(.)+$" myFileNumber = null myForumName = null } #$0 ~ Gremlin { zapGremlin($0)} $0 ~ myForumLine_in_normal_mode {myForumName = $2 ; print "\\m"myForumName ; next } $0 ~ myForumLine_AfterMail {myForumName = $2 ; print "\\m"myForumName ; next } $0 ~ myLibraryLine_in_searchMode { myLibraryNumber = substr($0,5,2) ; next } $0 ~ myLibraryLine_in_PageMode { myLibraryNumber = $2 ; next } { gsub("^[ ]+", "", $0) } $0 ~ myFileLine { convertLine($0) } function convertLine(myFileNumber){ myFileNumber = $1 sub("^[0-9]+[ ]+", "", $0) print myLibraryNumber"-"myFileNumber, "/* "$0" */" }