= Nozlog.def v0.13 = by H_ear
#if 0
Web Forumの過去ログをnifty形式に整形
($no,$reno,$lx,$sub,$email,$url,$name,$dat,$msg,$t,$h,$pw,$w,$oya);
但しniftyの総発言数を親発言番号に変更
IDは発言者名から生成
#endif
* mad for vz!
1 ^\ "" ?.
&a("過去ログのみ処理対象です. よろしいです") ;#0.12+
(r<1)?{ &m("中止しました.") . }
mp[, eu[+, ek[+, mi[-, mx[+,
;; #^ #> #d ;先頭予約行はパス #0.12-
#^ #> #> ;先頭行末へ移動
(lh*we+lx<60)?{
&a("現行ログのようです. 強行します") ;#0.13+
(r<1)?{ &m("中止しました.") >z }
#d ;先頭予約行をスキップ
}
#< #< ;念のため
a=id, #O "forum.nif" #m (s)?'y' b=id, #W
:l ; ---- main loop ----
#b #> #> #d #k
#R "nul" #m (s)?'y' #i
mb-, #56 "<>" #m "\n" #m "ay"
#_ (4){ #e } &n o=r, ;oya
(4){ #e } #b #_ #y ;雑情報削除
#^ #< &n n=r, #l &?("%05u/%05u ",n,o) ;no/oya
&09 ;repl
#g &n c=r, #l ;reno
#g &n x=r, #l ;lx
#d ;タイトル行
#x (2){#y} #_ #n #m #i ;urlのみ出力
#< (ct>1)?"参照先: " #<
#^ (2){#x} #y #e #i ;name
#< #b #> ps[=pa, #G ps],
#< #s &10 #g #> ;name2id
V(39) #> ;name
(ct>1)?{ &x(38) #? #l V(39) #> } ;name
#g &x(79) #? #l #d ;sub
"( 1) " ;forum
&x(15) mi+, " " mi-, ;date/time
#> (c+1)?{ &?(" %05uへのコメント",c) } #m
mb-, #_ #> #b #^ #< #y #C
T(-b) #i
T(-a) (ct>1)?>l
#^ T(-b) #^ ;#0.13+
&m("名前を付けて保存してください.")
:z ; ---- exit ----
mx], mi], ek], eu], mp],
&d #] .
09: ; ---- repl < > &
#56 "
" #m "\n" #m "fy"
#56 ">" #m ">" #m "fy"
#56 "<" #m "<" #m "fy"
#56 """ #m "$"" #m "fy" ;#0.11+
#56 "&" #m "&" #m "fy"
10: ; ---- name to id
t=pa..0, &> u=r, &Im(u,0) &Ia(u,t)
&Id(u,17576) v=r, u..0+=65,
u..1=v/676+65, v=v%676+65, u..2=v%26+65,
&Sn(pa) i=j-, (r){ j+=pa.i, i++, }
&?("%c%c%c%05u ",u..0,u..1,u..2,j)
00: ; ---- long ----
(3+$)."[6]"
*
[Variables]
a,b id
c comment
i counter
j total
n num
o oya
t name top word
u use buf
v tmp
x (lx)
[Buffers]
pa as ps
[History]
2005/06/16 0.10 初版
2006/12/22 0.11 WebForum v4.5 実体参照"変換に対応
2008/08/11 0.12 過去ログの先頭アーティクルを抽出していなかった
2008/08/16 0.13 過去ログ対応としたが現行ログで強行も可とした
[Notes]
1回の#>で論理行末に移動しない事例あり,但しマクロ内ではなく,手入力で。
一応用心のため2度#>を発行する場合あり。
name2id…(^^;
#>だけでラインバッファのエラーになることがあるが、マクロでは大丈夫なのか?