ZaurusからテキストファイルをAndroidに赤外線転送しようとしたところ、エラーになったが、ひょっとしたらvNote形式にしてやれば、受信できるのではないか。
そう考え、vNote形式に変換するスクリプトを作成することにした。
まず、vMessage/vNoteファイル変換からダウンロードしたツールによってテキストファイルから生成したvntファイルはAQUOS PADに転送でき、メモで読むことができた。
ただし、テストに用いたファイルはEUCコードだったため、文字は化けている。
また、メモ上ではすべてのテキストを見ることはできるが、文字数制限うんぬんという表示も出ている。
したがって、Zaurusで適切な文字コードに変換してさらにvntに変換すれば、赤外線転送は可能と思われる。
テキストファイルをShift_JISに変換した後Base64エンコードして、前後にvNote形式のヘッダフッダを加えてやればよいだろう。
Base64を使ったデコードプログラムは、以下のURLで見ることができる。
エンコードもほぼ同様だろう。
http://cachu.xrea.jp/blog/archives/2006/07/120629.html
そのほかhttp://news.mynavi.jp/column/nihongoprog/055/でもVNTファイルの作成をやっている。
ここによれば、CHARSETの設定もできるようだが、デコード側が正しく判別できるかは不明。
ということで、
さきほどvMessage/vNoteファイル変換で変換したvNote形式を参考に、適当なスクリプトを作ってみた。
送信するテキストは、"/home/zaurus/Documents/Text_Files/zaurus.txt"に固定という安易なものだが、必要十分。
ただし、なぜかnkfが入っていなかったので見つけるのにちょっと手間取った。
irsenderは以前見つけたコマンドラインの赤外線送信プログラム。
#!/bin/sh # IR TeXT sender by vnote format TARGET=/home/zaurus/Documents/Text_Files/zaurus.txt VNOTE=/home/zaurus/tmp/irtxt.vnt if [ ! -e ${TARGET} ] ; then echo not exist ${TARGET} exit 1 fi if [ -e ${VNOTE} ] ; then rm ${VNOTE} fi echo "BEGIN:VNOTE" >> ${VNOTE} echo "VERSION:1.1" >> ${VNOTE} echo "X-FORMAT:1" >> ${VNOTE} echo -n "BODY;ENCODING=BASE64:" >> ${VNOTE} nkf -sMB ${TARGET} >> ${VNOTE} echo -e "\n\nEND:VNOTE" >> ${VNOTE} /home/zaurus/bin/irsender ${VNOTE} rm ${VNOTE}これで、無事、Zaurusで日本語入力して、AQUOS PADに転送するという環境が構築できた。AQUOS PADも普通のサイズのスマホに比べれば入力は楽だが、やはりZaurusにはかなわない。