あなたの標準語
標準入出力(STDIO)版

使い方

 動作確認:Windows 98/NT4.0SP3,5のDOS窓,Vine Linux 1.0,Redhat Linux 5.2,6.0 などなど

 UNIXで,GNU C++(g++)が使える環境なら動くと思います.  使用する環境に合わせてソースや辞書などの文字コードを変換してからコンパイルして下さい.UNIX環境だと大部分がEUCでしょうが,自分の身近なところでJISを採用している例もありますので,一応は確認したほうがいいですよー.

 Windows用のGUI版と比べると,変換速度がかなり高速です

 Win32コンソール用の場合,バイナリファイルをダウンロードして解凍して,DOS窓からそのディレクトリに移動し,

[バイナリ名] [辞書名] [オプション] < [入力文書ファイル名]

としてリターンキーを叩けばOKです.オプションは省略可です.具体的には

nagasaki.exe batten-yarou.dic < sample.txt

出力文書をファイルに収めたいならパイプを使って下さい.

nagasaki.exe batten-yarou.dic < sample.txt > result.txt

としてやればよいです.辞書が半角スペース区切りの場合は

nagasaki.exe xxx.dic -s < sample.txt

としてやります.-s オプションが半角スペース区切りのためのオプションです.

 UNIX版はソースファイルのみを公開しておりますので(バイナリの公開は無意味でしょう),まずダウンロードして解凍してmakeと打ち込んでコンパイルして下さい.Makefileの書き方が初心者っぽいのは気にしないでください(^^;.

 そしてバイナリファイルがNagasaki_UNIXとなって出来てますので,chmod 755 Nagasaki_UNIX としてやって実行モードにし,

./Nagasaki_UNIX batten-yarou.dic < sample.txt

としてやって下さい.基本的にはDOS窓と同じです(正確にはDOS窓がUNIXと同じです).

 また,UNIX版の文字コードをS-JISに変換してCygwin32でUNIXと同じようにコンパイルしてやれば同じように動きます.



技術的な解説

 開発環境:Visual C++,Cygwin32,Vine Linux
 動作確認:Windows 98/NT4.0-SP3,5 のDOS窓,Vine Linux 1.0,Redhat Linux 5.2,6.0 など

 最初に作成したのがDOS窓用です.VC++でコンソールアプリとして作成しました.だってコード書くのが楽なんですもん.メンバ関数補完機能とクラスビューアに慣れてしまうと他のエディタが使えません.あれって便利ですよ.メンバ関数を補完してくれなかったら自分の書き方がまずい(インスタンスであるところをポインタとして記述しようとしたなど)のがわかってしまいますから.まれに正しいのに補完してくれないときがありますけど (^^;.

 次にそれをそっくりそのままコピーして,Makefileを作ってCygwin32でコンパイルしてみました.stringクラスの実装に少々違いがあるようで,少しだけコードを書き直しましたが,最終的にはDOS窓用とまったく同じコードとしました.

 次に文字コードをEUCに変換してVine Linuxでコンパイルしました.そのまま動きました.Cygwin32がいかにGNUに準拠して作られているかを見せつけられます.実行ファイル名にexeが付けられる以外,CygwinはUNIXそっくりです.

 標準入力の取り込みにgetsを使っております.getsは危険であるとコンパイラから怒られますが,危険なものを流し込まない限りは危険ではありません.つまりローカルで正体がわかっているファイルを流し込むのであれば全く危険はありません.

 サーバ用途に使うときには(そんな人はいないでしょうけど)クラッキングを防止するために一旦外部で検査してから流し込んで下さい.もしくは内部で検査するようにソースを書き直して下さい.



[トップページへ]