技術資料


gn for Palm が使用する各 PDB の構成を解説します。
どなたか、コンジット書いていただけませんか?

クリエータ ID

gn for Palm のクリエータ ID は 'GonN' です。

gn-Subscribe.pdb

トップカテゴリ毎の購読/非購読情報を、 1トップカテゴリ1レコードで格納しています。
レコードは、カテゴリ名の昇順にソートしています。
データベースのタイプは、'SBSC' (いいのかな?)
offsetsize内容
02unsigned short 0x0001:1 なら購読
2不定長unsigned char トップカテゴリ名(最初の . の左まで)。NULL ターミネート

gn-Newsgroup.pdb

各ニュースグループの情報を、1グループ1レコードで格納しています。
レコードは、ニュースグループ名の昇順にソートしています。
データベースのタイプは、'NSGP' (いいのかな?)
offsetsize内容
02unsigned short 0x0001:1 なら購読
24unsigned long gn-Article.pdb に存在する最初の記事番号
gn-Article.pdb に記事がなければ0
64unsigned long gn-Article.pdb に存在する最後の記事番号
gn-Article.pdb に記事がなければ0
104unsigned long 連続した既読の最後の記事番号
144unsigned long 未読記事数
18不定長unsigned char ニュースグループ名。NULL ターミネート
次の不連続既読を偶数番地から開始するために、 ニュースグループ名の長さが偶数の場合、 ダミーバイトがある
2n4以上unsigned long 不連続既読記事番号。NULL ターミネート
不連続既読がない場合は、ターミネータのみ

例:
fj.news.reader.gn に 100 から 200 の記事があり、 100 から 150 までと、152, 154, 155, 157 が既読の場合
offsetsize内容
02unsigned short 1
24unsigned long 100
64unsigned long 200
104unsigned long 150
144unsigned long 46
1818unsigned char "fj.news.reader.gn\0"
3620unsigned long 152, 154, 155, 157, 0

gn-Article.pdb

各記事のの情報を、1記事1レコードで格納しています。
レコードは、ニュースグループ名、記事番号の昇順にソートしています。
データベースのタイプは、'ATCL' (いいのかな?)
offsetsize内容
04unsigned long 記事番号
4不定長unsigned char ニュースグループ名。NULL ターミネート
x不定長unsigned char 記事全体。NULL ターミネート
改行コードは \n。エンコーディングは Shift-JIS
ヘッダ部の ISO-2022-JP B エンコードと Q エンコーディングは、 デコードしてある(つもり)
ヘッダ部と本文の間は、空行
記事のサイズがが63KBを越える場合は、63KBで切り、 その後に"以後gnが削除"が付加してある

gn for Palm
Copyright (C) 2002 Yasunari Gon Yamashita. All Rights Reserved.
yasunari @ yamasita.jp