ebstopcode コマンド

この文書は EB ライブラリバージョン に対応しています。

目次:

Copyright (c) 2003-2006 Motoyuki Kasahara

はじめに

あなたが EB ライブラリのアプリケーションを使って CD-ROM 書籍の中のある 単語を引く際、その単語の説明が終了する箇所で、アプリケーションが本文の 出力を止めることをあなたは期待するのではないでしょうか。 しかし、EB ライブラリはそのような動作を保証することができません。 なぜなら、CD-ROM 書籍の本文には、項目の終わりを示す印が存在しないから です。

幸いにも、多くの CD-ROM 書籍には、項目の終わりを示す印の代替として 使える、本文の区切りコード (text stop code) というものを持って います。 通常、EB ライブラリはこの区切りコードを自動的に推測するようになって いるのですが、時々誤った区切りコードを導き出すことがあります。 その場合は、appendix (付録) というものを用いて、EB ライブラリに 正しい区切りコードを教えてやらなくてはなりません。

ebstopcode コマンドは、CD-ROM 書籍の本文の区切りコードを解析 するためのツールです。

ebstopcode の実行

ebstopcode の一般的な起動方法は次の通りです。

% ebstopcode 書籍へのパス 副本

書籍へのパス には、CD-ROM 書籍のトップディレクトリ、つまり catalog または catalogs ファイルが存在する ディレクトリを指定します。 遠隔アクセス用の識別子 (ebnet://...) を指定することも可能です。 書籍へのパス が省略された場合は、カレントディレクトリが指定された ものと見なされます。

副本 には、処理の対象とする副本のディレクトリ名を指定します。 ebinfo コマンドを用いると、CD-ROM 書籍にどのような副本が 含まれているのかを知ることができます。

% ebinfo /cdrom
ディスクの形式: EB/EBG/EBXA/EBXA-C/S-EBXA
文字コード: JIS X 0208
副本の数: 2

副本 1:
  題名: 新英和辞典(第四版)
  ディレクトリ: english
  検索方式: 前方一致 後方一致 条件 メニュー
  フォントの大きさ: 16 24 30 48
  半角フォントの文字: 0xa121 -- 0xa24e
  全角フォントの文字: 0xa321 -- 0xa27e

副本 2:
  題名: CD-ROM 仏和辞典(第三版)
  ディレクトリ: french
  検索方式: 前方一致 後方一致 条件 メニュー
  フォントの大きさ: 16 24 30 48
  半角フォントの文字: 
  全角フォントの文字: 0xa321 -- 0xa27e

(ebinfo コマンドに関しての詳細は、 ebinfo コマンドのマニュアル を参照のこと。) この例では、2 つの副本が書籍には含まれており、その名前は englishfrench だということが分かります。

副本 english の区切りコードを解析するには、以下を実行します。

% ebstopcode /cdrom english

ebstopcode は、副本の本文と区切りコードの候補を次のように 出力します。

=== stop-code?: 0x1f09 0x0001 ===

=== stop-code?: 0x1f41 0x0100 ===
A

=== stop-code?: 0x1f09 0x0001 ===
[名] 1: A 抗原を有する赤血球を持つ血液型

=== stop-code?: 0x1f09 0x0001 ===
2: メートル基準の長さの単位。10億分の 1 メートル。

=== stop-code?: 0x1f09 0x0001 ===
3: アンペア。電流の基本単位で、SI単位系の一つ。

=== stop-code?: 0x1f09 0x0001 ===

=== stop-code?: 0x1f41 0x0100 ===
(以下略)

stop-code?: と書かれた行はそれぞれ、区切りコードの候補を 示しています。 これを区切りコードとして指定すると、EB ライブラリはその地点で本文の 出力を停止します。

この english という副本の適切な区切りコードは、"0x1f41 0x0100" になります。 --no-candidate--code オプションを使用して、この 区切りコードを試してみます。

% ebstopcode --no-candidate --code "0x1f41 0x0100" /cdrom english
A
[名] 1: A 抗原を有する赤血球を持つ血液型。
2: メートル基準の長さの単位。10億分の 1 メートル。
3: アンペア。電流の基本単位で、SI単位系の一つ。

ebstopcode のオプション一覧

ebstopcode コマンドは、伝統的な一文字オプション名と覚えやすい長い オプション名の両方を扱うことができます。 長いオプション名を表すには、- ではなく -- を 用います。 オプション名が一意に決まる範囲内で、名前の後方部分を省略することが できます。

-c コード
--code コード
コード を区切りコードに指定します (例: "0x1f09 0x0001")。 ebstopcode は、コード を見つけるまで本文を出力します。
-h
--help
ヘルプメッセージを標準出力に出力して、終了します。
-l 長さ
--length 長さ
本文データを最長で 長さ バイトまで出力します。 長さ を 0 にすると、ebstopcode は本文全体を出力します。 このオプションを指定しなかったときは、2048 になります。
-n
--no-candidates
区切りコードの候補を出力しないようにします。
-p ページ:オフセット
--text-position ページ:オフセット
本文データの出力をこの位置から開始します。 ページ には 0 より大きい 16進整数を、オフセット には、 0〜0x7FF の間の 16進整数をそれぞれ指定します。 このオプションを指定しなかったときは、本文データの先頭位置から出力します。
-v
--version
バージョン番号を標準出力に出力して、終了します。

--code (-c) と --length (-l) オプションは、互いにもう一方のオプションを打ち消します。