home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 December
/
VPR0112B.ISO
/
OLS
/
JED194V
/
JEDDOC.LZH
/
PAD.MCR
< prev
next >
Wrap
Text File
|
1995-01-02
|
6KB
|
280 lines
; ************************************
; * AIR+CRAFT用PADファイル作成マクロ *
; ************************************
;
; PADファイルの書式などは、PAD.CFGで設定する。
;
;--------------------------------------------------------------------
;CFGファイル名。CFGファイルは、このマクロと同じパスに置くこと
p = "PAD.CFG",
;--------------------------------------------------------------------
;初期設定 挿入モードへ 画面表示抑制
?.
&s
T(1) #^ ;強制的に第1画面に
(mi) ? #v ;挿入モード
;ログの種類の判定
t = "0123456789 ",
; &d&t
; z 0-旧式会議室 1-サイクリック会議室 2-mail 3-HP
z = -1,
T(1) #^
:X
#< l = ln,
(ct < 2) ? { >Z }
&f(cd,t) (r < 0) ? >Z ;先頭が数字かスペースでなければ形式外
#d &f(cd,t) (r < 0) ? >Z ;2文字目
#d &f(cd,t) (r < 0) ? >Z ;3文字目
#d (cd == '/') ? {z = 0, >M} ;4文字目 / 旧式会議室
(cd == ' ') ? {z = 2, #d#d >P}
(cd == '#') ? {z = 2, >M} ;スペースか# MAIL
#d#d
(cd == '/') ? {z = 1, >M} ;6文字目 / サイクリック会議室
:P
(cd == '[') ? z = 3, ; [ HP
:Z
(z != -1) ? >M
#x #>
(ct && (l < 6)) ? { >X } ;先頭行から6行の間を検索
? {&d &b(1) &a("ログ形式が違います!! (hit any key)") #Q}
;形式外ならば、強制終了
;メニューの呼び出し PADの種類の決定
:M
ll = l,
(z == 2) ? { pp = 2, >O }
&d
(z<3) ? {!01} ? {!02}
((r == -1) || (r == 4))
? { / } ;マクロ終了
? { (r == 5) ? { #Q }
? { pp = r--, &s } }
;pp : PAD種別のフラッグ
; : RES:0 SAY:1 MAIL:2 - MES
; : HP1:0 HP2:2 MAIL:2 - HP
;CFGファイルオープン
:O
; #O #03
#O 'L' ;JED 仕様変更に伴い修正 '93 9/12 orik
&?(pi) #> #s
:C
(cd != '\\') ? {#g #s >C} ;パスの取り出し
#d &?(p) #m ;CFGファイルをオープンする
#^ #m #m ;検索を確実にするために、最初に空白行を付加する
w = wn,
;フォーラム名 $F
T(3) #P #k #y ;フォーラム名のファイルからフィル名を取り込
T(2) #_ #i #> ;PADファイルの一番最後にコピー
aa = ln, ;現在のカーソル行を記憶
:A
(cd != '\\') ? {#s >A} ;¥を見つけるまで左へカーソル移動
#g #18 #_ ;カーソル位置の¥を削除して行頭まで削除
( z < 3) ? >H
;HPの確認
;&d&t
#e T(w) #^ #F "$HP" #m #03 ;ホームパ-ティー名の登録があるかどうか
&70 ;検索結果確認ルーチン
(ff) ?? >H ;見つからなければ、スキップ
T(2) #k T(w) #^ #F #i #m #03 ;ホームパティー名の検索
&70 (ff) ?? {T(2) #_ >H} ;無かった時は、スキップ
#f #b #> #52 T(2) #y #p #> #m ;ホームパティー名で置き換え
;MES $M
:H
(z == 3) ? { "MES????MES" #m } ? { ;HPでは、該当なし
l = 2, c = 2, n = 2, ;l=行数 c=カラム n=文字数
&50 }
;発言番号 $N
l = 1, c = 1, ;切り出しログの先頭から・・・
(z) >?
{{ n = 3,} { n = 5,} { n = 2,} {n = 3,}} ;抽出文字数の調整
&50
;タイトル $T
l = 1, n = 99, ;n=99 その行の終わりまで
(z) >?
{{c = 39,} {c = 40,} {l = 2, c = 11} {c = 38}}
&50
;ハンドル $H
l = 1, n = 16,
(z) >?
{{c = 21,} {c = 23,} {c = 5,} {"$I" #m >I}}
;HPでは、とりあえずIDに変換
&50
#e #> #s ;ハンドルの後ろから空白の削除
:B
(ct == 2) ? {#g #s >B}
#_
;ID $I
:I
l = 1, n = 8,
(z) >?
{{c = 11,} {c = 13,} {c = 23,} {c = 24,}}
&50
;書き込み日 $D
l = 2, c = 8, n = 8,
(z == 2) ? {l = 1, c = 33, n = 5,}
(z == 3) ? {l = 1, c = 7,}
&50
;書き込み時刻 $J
l = 2, c = 17, n = 5,
(z == 2) ? {l = 1, c = 39,}
(z == 3) ? {l = 1, c = 16,}
&50
;最後の署名 $S
J(aa) ;フォーラム名取り込
#k T(w) #^ ;CFGファイルに
t = ln,
#F #i "$" #m #03 ;$フォーラム名を検索
&70
(ff) ? {#f #f >J} ;見つかれば切り出し
#^ #F "$HANDLE" #m #03 ;登録が無ければ、$HANDLEから切り取る
&70
(ff) ? {#f #f}
? {T(2) #_ #m >L} ;$HANDLEの登録が無ければ、空欄とする
:J
#b #> #52
T(2) #_ #p #> #m
;PADデータの書き出し
:L
T(w) #^ ;切り取り範囲の記号の検索
(z < 3) ? {
(pp) >?
{{t = "$>R",} {t = "$>S",} {t = "$>M",}}
}
? {
(pp) >?
{{t = "$>HP1",} { t = "$>HP2",} {t = "$>M"}}
}
#F &?(t) #m #03
&70
(ff) ?? {ss = "/スケルトンデータが無い", &75} ;スケルトンデータが無い
#x #F "/POST" #m #03;/POSTの検索
&70 (ff) ?? {ss = "/POSTが見つからない", &75} ;/POSTが無い
#> #b #U #52 #C 'Y' ;指定範囲をコピーして、CFGファイルをクローズ
T(2) #_
#p #_ #m
J(aa)
t = "$F", &60 ;フォーラムなどを置き換え
t = "$M", &60
t = "$N", &60
t = "$T", &60
t = "$H", &60
t = "$I", &60
t = "$D", &60
t = "$J", &60
t = "$S", &60
J(aa) ;最初の行へ移動
;指定カーソル位置への移動 $C
x = lx, y = ln, ;最初の行の位置を記憶
#F "$C" #m #03 ;$Cを探す
((x == lx) && (y == ln)) ? >Q ;無かったら終了処理
#g#g ;$Cの消去
x = lx, y = ln, ;現在のカーソル位置
#U ;一旦戻して・・・・
&y(y - ln) ;$Cを見つけた場所へ・・・
&x(x - lx)
:Q
T(1) #^ ;画面の組み合わせの調整
T(2)
&d
/
;オートセーブ
dd = 5, ;カーソルが5行進毎にセーブ
;
l = ln, ;現在の行を記憶
ll = l + dd, ;次にセーブする行
:T
&p ;入力結果はそのまま出力
(r == #e) ? {ll--,}
&o(r)
(ln > ll) ? { ;セーブ予定行を超えたら・・
(mr) ? {#S ll=ln+dd,} ;セーブして、行を記憶し直す
}
>T
/
50: ;指定範囲切り出し
;l=行 c=カラム
;n<99 指定文字数
;n=99 行末まで
T(1) #^ ;ログファイルの指定位置へ
&y(l+ll-2) &x(c--) ;指定位置へカーソル移動
#b ;切り出し範囲の指定
(n == 99) ? { #> >S} ;指定文字数だけ
e = ( c + n),
:R
(lx < e) ? {#d >R}
:S #52 T(2) #p #> #m ;PADファイルにコピー
.
60: ;カーソル行の文字列で、tで指定した文字列を置き換え
#k #y #61 &?(t) #m
#i #m #03
J(aa) .
70: ;再検索及び検索結果の確認
ff-, ;検索フラッグの初期化
((ln == 1) && (lx == 0)) ? .
;文頭にカーソルがあれば、見つからなかったとみなす
i = 0, ;カウンター(10回までくり返し検索する)
:K (i > 10) ? . ;10回再検索しても見つからなければ戻る
((ln == 1) || (lx != 0)) ? {#57 #03 i++, >K}
;カーソルが行頭にないとき、最初の行にある時 再検索する
ff+,
.
75:
T(2) J(aa) #b #_ #54 &d &?(ss) #m / ;エラー表示
;ポップアップメニュー
01:"PAD種別の選択",22,5
"R | RES"
"S | SAY"
"M | MAIL"
"Q | マクロのみ終了"
"Z | 強制終了"
.
02:"PAD種別の選択",32,5
"R | HP type1 (RES)"
"S | HP type2 (SAY)"
"M | MAIL"
"Q | マクロのみ終了"
"Z | 強制終了"
.