「AMET」について
■「AMET」のブログ
■AMETとは?
概要
ATOKの変換機能を使ってperl (ruby, awk, その他各種プログラム等)のコマンドを使うことができるソフトウェア。扱うデータはテキストでも画像でも何でもOKです。
使用中の画面動画は
動作環境
ATOKがWindowsにインストールされていること。また、perl, ruby, awk, sed etc.等があるとさらに便利。
ダウンロード
ネットワーク上での再配布は今のところは止めておいて下さい。
インストール
設定方法・使い方
CONFIG.TXTの書き方
CONFIG.TXTは奇数行目の文字列が次の行の文字列で置換されます。また、入力文字列の頭には"PREFACE_"という文字列が付加され、末尾には"POSTPOS_"という文字列が付加されています。デフォルトはDOSコマンド用のものになってます。
DOSコマンド用の例
したがって、例えばDOSコマンド用としては
PREFACE_ POSTPOS_ 漢字アート CURRENT_PATH_kanjiart.exe 40 10 LUT.TXT UseCtrlV CURRENT_PATH_ C:\\Datum\\hiraxnet\\projects\\AmetMulti2\\
なんていう感じです。この場合、DOSコマンドがそのまま実行されるわけです。また、引数の最後にはクリップボードの中身のファイルがつけられます。
最後の行はAmetMulti.exeのあるディレクトリの別名を設定しています。特に必要はありませんが、こうでもしておくと便利でしょう。
perl用の例
したがって、例えばperl用として
PREFACE_ perl -e " POSTPOS_ "
というCONFIG.TXTを使った場合に、"print sin(3)"という文字列を変換すると、
perl -e "print sin(3)"
という命令が実行されることになります。また、この命令の後にクリップボードの内容が保存されたファイルが引数で渡されます。
次の例は「じこく」「ねんがっぴ」という単語でスクリプトを登録したものです。
じこく ($s,$m,$h,$d,$o,$y,$w,$i)=localtime(time);printf qq/%02d:%02d:%02d/, $h, $m, $s; ねんがっぴ ($s,$m,$h,$d,$o,$y,$w,$i)=localtime;$y+=1900;$o++;printf qq/%04d\/%02d\/%02d/, $y, $o, $d;
次の例は、「ぎょうばんごう」という単語でスクリプトを登録したものです。
ぎょうばんごう
$i=1;while(<>){printf qq/%05d: $_/, $i;$i++}UseCtrlV
スクリプト中に"UseCtrlV"というキーワードを埋め込むと、通常の文字入力でなく、クリップボード経由でCtrl+Vを投げつけることにより、入力が行われます。64文字以上もしくはテキスト以外の入力を行う際は、UseCtrlVを使う必要があります。
また、クリップボード中の画像もスクリプトには引数として渡されますので、
かんじあーと system(qq/C:\\Datum\\hiraxnet\\projects\\AmetMulti2\\kanjiart.exe $ARGV[0] 80 40/);UseCtrlV びじん system(qq/C:\\Datum\\hiraxnet\\projects\\AmetMulti2\\bijin.exe $ARGV[0]/);UseCtrlV
なんていう使い方もできます。前者はクリップボード中の画像を「漢字アスキーアート」で出力し、後者は前者はクリップボード中の画像を「美人フィルタ」をかけて出力を行います。スクリプト中のパスは各自環境に合わせて修正して下さい。
ちなみに、スクリプト側がBITMAP_IS_という文字列を先頭に付けて出力を行うと、その後に付けられた文字列をBitmapファイル名としてAmetPerl?がファイルを読み込んで出力を行う、という仕組みになっています。
*WinGraphViz?を使った例
例えば、WinGraphViz?をインストールした状態で、こんな単語登録(perlのソースは改行をなくしてワンライナーに変更して下さい)をしてみます。
関係
use Win32::OLE;
$gif=qq/$ARGV[0].gif/;
$bmp=qq/$ARGV[0].bmp/;
while(<>){chomp($_);
s/に/は/;
s/を/は/;
@data = split(/は/, $_);
$param = $param . qq/@data[0] -> @data[1] [label = @data[2]] \;/;};
$objDOT = new Win32::OLE qq/WinGraphviz.DOT/;
$strCMD = qq/digraph G {$param}/;
$objGIF = $objDOT->ToGIF($strCMD);
$objGIF->Save($gif);
system(qq/C:\\ImageMagick-6.0.0-Q8\\convert.exe $gif $bmp/);
print qq/BITMAP_IS_$bmp/;
UseCtrlV
*GnuPlot?を使った例
これまた適当に作った、GnuPlot?で数式グラフを描く例です。実際には、改行コードを入れて、ワンライナーにして下さい。
「 $param=qq/ 」 /; のぐらふ $param=qq/sin(x)/; $config = qq/$ARGV[0].gp/; $Image = qq/$ARGV[0].eps/; $ConvertImage = qq/$ARGV[0].bmp/; open (OUT, qq/>$config/) or die /$!/; print OUT qq/set term postscript eps enhanced color\n/; print OUT qq/set output '$Image'\n/; print OUT qq/set pm3d at b\n/; print OUT qq/splot $param\n/; close (OUT); system(qq/C:\\gnuplot\\pgnuplot.exe $config/); system(qq/C:\\ImageMagick-6.0.0-Q8\\convert.exe ps:$Image bmp:$ConvertImage/); print qq/BITMAP_IS_$ConvertImage/; UseCtrlV
*ImageMagick?を使う例
実際には、ワンライナーにして下さい。
縁取り use File::Copy; $bmp0=$ARGV[0].qq/0.bmp/; copy($ARGV[0],$bmp0); $bmp=$ARGV[0].qq/.bmp/; system(qq/C:\\ImageMagick-6.0.0-Q8\\convert.exe -frame 12x12+4+4 -mattecolor #8080ff $bmp0 $bmp/); print qq/BITMAP_IS_$bmp/;UseCtrlV
ruby用の例
次の例はruby用です
PREFACE_ ruby -Ks -e " POSTPOS_ "
この場合、"print Math.sin(3)"という文字列を変換すると、
ruby -Ks -e "print Math.sin(3)"
という命令が実行されることになります。また、この命令の後にクリップボードの内容が保存されたファイルが引数で渡されます。
awk用の例
次の例はawk用です
PREFACE_ awk " POSTPOS_ "
CONFIG.TXTの応用
CONFIG.TXTは奇数行目の文字列が次の行の文字列で置換されます。ということはさまざまな一行関数を「辞書追加」するのと同じ感覚で追加できるということになります。 ATOKの辞書は64文字までという制限がありましたが、このCONFIG.TXTではそんな制限はありません。
したがって、例えばperlを使って例を作ってみると
PREFACE_ perl -e " POSTPOS_ " ねんがっぴ ($s,$m,$h,$d,$o,$y,$w,$i)=localtime;$y+=1900;$o++;print qq/$y\/$o\/$d/;
なんていう記述をCONFIG.TXTに追加しておけば、"ねんがっぴ"と入力してAMET変換を行うと
perl -e "($s,$m,$h,$d,$o,$y,$w,$i)=localtime;$y+=1900;$o++;print qq/$y\/$o\/$d/;"
という命令が実行されることになります。試しにやってみると、2004/4/13なんていう風に年月日が自動入力されることになります。
さらに、例えば
「 $param= 」 ; のこさいん $param=cos(param); をいんじ print $param;
なんていう記述を追加しておけば、"「0」のこさいんをいんじ"と入力して変換すると
perl -e "$param=0;$param=cos($param);print $param;"
という命令が実行され"1"という結果が返されることになります。
こんな感じで、クリップボードにコピーされた内容から
「キーワード」がでてくるかいすう
なんていう風に、クリップボードにコピーされた内容から「キーワード」が出てくる回数を計算して出力するなんていうことも簡単にできるわけです。
説明 or サンプル
ようこそ「辞書単語登録プログラミング」の世界へ - ATOKではじめるperlスクリプト -
「辞書単語登録プログラミング」 面白一発芸 編
長い出力結果の時には"&"を末尾につける
ATOKはおそらく64文字までの単語変換しかサポートしていません。そのため、このソフトでは長い出力結果の時には、"&"を末尾につけることで以下の動作をします。
- クリップボードに出力結果を吐く
- アプリケーションに"Ctrl + V"のキー・イベントを投げる
したがって、「貼り付け」作業が"Ctrl + V"でないアプリケーション上だと、長い出力結果の時に"&"を末尾につけても「貼り付け」が行われない、だろうと思います(テストしてない)。
辞書単語登録へのFAQ
単語登録ができない
ATOKでは辞書に登録できる単語長は64文字までという仕様に注意して下さい。
古い情報・履歴
■「AMET」を含む記事
- 「辞書単語登録プログラミング」 面白一発芸 編
- ようこそ「辞書単語登録プログラミング」の世界へ
- 「歴史」や「進歩」や「才能」
- AmetMulti + 携帯GPSデータ
- エクセルで円グラフを描くPerlスクリプト
- 祝!初のライトユーザー応募 編
- AmetMultiを使っている動画
- ATOK17でのインストール
- 「AMETで一発芸」に挑戦編
- 今日の神さま
- ATOKから便利ソフトを使ってみたい初心者さん募集中
- 「ATOK Perlプラグイン(dos,ruby,awk,その他大勢)」のオマケが豪華に。
- 「ATOK Perlプラグイン(ruby,awk,その他大勢)」インストール編
- 画像入出力にも対応の「ATOK Perlプラグイン(ruby,awk,その他大勢)」
- ATOKでperl(やその他大勢)プラグインを作った理由
- ATOKでperlだけじゃなくて、rubyやawk(その他大勢)を使ってみよう!
- れっつ! 日本語(ひらがな)プログラミング(ATOKで…)
- ATOK用perl機能追加プラグイン
- ATOK用perl機能追加プラグイン
- ATOK 「コマンド処理」プラグイン
- ATOK「コマンド」プラグイン
- 入力予測、でちょっと一休み
- 数式処理プラグイン+ATOK15+Windows98
- ただの「データベース+パターンマッチング」
- 変数代入機能
- ATOK数式処理プラグイン on Win95, ATOK12
- 古いバージョンのATOKでの「ATOK数式処理プラグイン」のインストールについて
- ATOKプラグイン「多対一対応」
- 演算子・関数一覧
- ATOK数式処理プラグイン「AtokMathParser」
- AMETのATOKへのメッセージ送信
- ATOKプラグイン
- ATOK 2008発表、プラグインでWebと連携へ
- 日本語変換再び
