bbs.cgi 改良案スレッド

このエントリーをはてなブックマークに追加
179デフォルトの名無しさん
>>88 から datファイルに埋込案のまとめ

【各々レスに埋込案】
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,スレタイトル,01mm
<b>名前</b>,sage,01/04/06 22:50 IDxxxxxxx,本文,nnmmpppqqqq

nn は62進数2桁でこの行のレス番号を記録
mm は62進数2桁でこの行のバイト数を記録
ppp  は10レス前の絶対バイト位置 % (62^3) 10レス迄は空白
qqqq は50レス前の絶対バイト位置  50レス迄は空白

【アボーン時の処理】
あぼーん時は同じサイズで塗りつぶすようにする。
インデックスのレス番号に00を入力したレコードを出力する。

あぼーん,,,,,00mm

read.cgiは、ファイルサイズを取得した後、
現在のファイルポインタ(サイズ)-(mm+1)バイトが'\n'なら インデクス有りとして
10レス前は、ファイルポインタ=adr として adr - (62^3) + ( ppp + (62^4) - adr) % (62^3) で取得
50レス前は、qqqqから取得
レス番号指定の場合は、nnから何レス前か割り出せば最悪 qqqqを19回 pppを4回mmで4回遡ればよい

read.cgi や bbs.cgiが datを読むとき、最終行の nnは信用しない事
pppを使って10レス前のレス番号から割り振りなおす事