« 2009年1月 | トップページ | 2009年3月 »

2009/02/20

電話帳をOutlook2007からLXのphone.pdbへ

携帯電話の電話帳とOutlook2007の連絡先はだいたい連携が取れています。Nokia機ならNokia PC Suiteで簡単にシンクロしますし、国産携帯電話でも、安価なパッケージソフトでだいたい可能です。

携帯電話と連携済みのOutlook2007連絡先をCSVにエクスポートして、HP200LXのPhone.pdbに取り込みます。

Microsoft Outlook 2007で、ファイルメニューのインポートとエクスポートから、
[ファイルにエクスポート]-[テキストファイル(DOS、カンマ区切り)]-[連絡先指定]から、
エクスポート先のファイル名を指定してcsvファイルを作成します。

これを、APPTOUT.EXEで、phone.pdbに取りこみます。
phone.pdbは、カスタマイズ可能なデータベースなので、項目がどうなっているかわかりませんが、今回はHP200LXデフォルトのphone.pdbの形式に取り込むことにします。カスタマイズしまくったpdbではなく、D:\_DAT\PHONE.PDBの形式のままで使います。HP200LXはPhonebookのデータを様々な形式で別ファイルで持てるので、Outlookからのデータは別ファイルのpdbにしておいてもいいでしょう。


まずOutlookからエクスポートしたCSVを、APPTOUTで読み込める形式に変換します。


perl ol2pb.pl outlook.csv >outpdb.csv

スクリプトの中身は単純で、以下のようなものです。


#!/usr/bin/perl
# Outlook2007連絡先CSVからLX APPTOUT用CSV作成
# perl ol2pb.pl phone.csv

# Outlookの表題行を読み飛ばす。
<>;
while($line = <>){
chop $line;
@arr = split(/,/, $line);
$cntarr = @arr;
# 改行を連結
while ($cntarr < 90) {
$addline = <>;
chop $line;
$line = $line . '\n' . $addline;
@arr = split(/,/, $line);
$cntarr = @arr;
}
$outline[0] = $arr[3] . $arr[2];
$outline[1] = $arr[31];
$outline[2] = $arr[40];
$outline[3] = $arr[38];
$outline[4] = $arr[37];
$outline[5] = $arr[0];
$outline[6] = '"携帯電話帳"';
$outline[7] = $arr[5];
$outline[8] = $arr[17] . $arr[16] . $arr[15];
$outline[9] = $arr[80];
$outline[10] = $arr[18];
$outline[11] = $arr[19];
$outline[12] = $arr[20];
if ($outline[8] =~ /^[ ]*$/) {
$outline[8] = $arr[10] . $arr[9] . $arr[8];
$outline[9] = $arr[80];
$outline[10] = $arr[11];
$outline[11] = $arr[12];
$outline[12] = $arr[13];
}
if ($outline[8] =~ /^[ ]*$/) {
$outline[8] = $arr[24] . $arr[23] . $arr[22];
$outline[9] = $arr[80];
$outline[10] = $arr[25];
$outline[11] = $arr[26];
$outline[12] = $arr[27];
}
$outline[13] = $arr[58];
#
for ($i = 0; $i < 13; $i++) {
$outline[$i] = '""' if $outline[$i] eq "";
print $outline[$i] . ",";
}
print $outline[13] . "\n";
}

こんな感じのスクリプトです。

apptout -x empty.pdb -i outpdb.csv -o addphone.pdb

とすれば、addphone.pdbというPhonebookができます。このpdbファイルを既存のpdb上にマージするなどして使います。

empty.pdbではなく、既存のPhone.pdbを-xオプションで指定すれば、いきなり追加ができてしまいます。
この場合、-oオプションで作成したpdbファイルは最初にPhonebook上で[MENU]-[V]-[S]-[ENTER]の操作をしないと一覧が表示されません。
また、-xオプションで読み込むphone.pdb上で、事前にカテゴリに「携帯電話帳」を追加しておく必要があります。

Phonebook上ならカテゴリでSubsetを作って閲覧したり操作したりできます。HP200LXの元々のPhonebookのデータとダブっていても気にせずに別カテゴリで取り込んでおけば、Phonebook上で切り替えて表示したり、両方表示して比較したりできます。たとえば「携帯電話帳」カテゴリのものだけ全て削除することもできます。
様々な種類の携帯電話でデータシンクロのテストをしていると、仕様上の制限などで、いつの間にか一部の項目が消えたり、データを失ったりすることがあります。一方、LX上のPhonebookは自分で消さないと項目が削除されるようなことはないので安心です。反面、メンテされずに何年も放置されていたりします。今回のように「携帯電話帳」カテゴリのデータは携帯電話とOutlookでシンクロし続けているもの、それ以外は頻繁にメンテしていないものというようにして、同一Phonebook上で手動世代管理に似たことも可能です。


「ol2pb.zip」をダウンロード

アーカイブの中身は、カテゴリの追加だけした空のEMPTY.PDBと、スクリプトです。

| | コメント (0) | トラックバック (1)

2009/02/17

シンクロをHP200LX単体で

Windows PC上で、HP200LXのappt.adbとGoogle Calendarのbasic.icsをシンクロすることができました。
1

HP200LX単独ではどうでしょう。限定公開URLでbasic.icsをダウンロードすれば、あとはHP200LX上でできています。HP200LXからGoogle Calendarに追加するaddggl.icsだけ、後でLXからなんらかの母艦にコピーしてブラウザからインポート操作をすれば完了です。

「G2LX_LX.zip」をダウンロード

アーカイブの中は、以下のようなバッチファイル(G2LX_LX.BAT)のみです。

昨日のスクリプトに加え、たぶん、
APPTOUT
dayexec
nkf
Perl
あたりが必要です。

rem LX上で実行するbasic.icsとappt.adbのシンクロバッチファイル
rem 要: apptout.exe dayexec.com nkf.exe perl.exe
rem 要: ics2csv.pl g2lx.pl lx2gcal.pl
A:
rem basic.icsをコピーしたディレクトリを設定
set WRKPATH=¥LOG¥APPT
rem appt.adbを置いているディレクトリを設定
set ADBPATH=¥_DAT
cd %WRKPATH%
rem LXのAppointmentsとGoogle Calendarのシンクロ
copy %ADBPATH%¥APPT.ADB  %WRKPATH%¥appt.adb
rem appointmensのデータをCSVへ
dayexec apptout -a -g/YYMM01/ -x appt.adb >appt.csv
dayexec apptout -e -g/YYMM01/ -x appt.adb >>appt.csv

nkf -Ws -Lw basic.ics >ggl.ics
perl ics2csv.pl ggl.ics >ggl.csv

rem シンクロ GoogleCalendar to LX
perl g2lx.pl ggl.csv appt.csv addappt.csv addevt.csv

rem 新adb生成
apptout -x appt.adb -i addappt.csv -o upappt.adb -a
apptout -x upappt.adb -i addevt.csv -o newappt.adb -e

rem SDへコピー
echo APPT.ADBを更新します。
copy %ADBPATH%¥APPT.ADB %ADBPATH%¥APPTOLD.ADB
copy NEWAPPT.ADB %ADBPATH%¥APPT.ADB

rem シンクロ LX to GoogleCalendar
perl g2lx.pl appt.csv ggl.csv addggl.csv addgevt.csv
perl LX2GCAL.PL addggl.csv >qaddggl.ics
perl LX2GCAL.PL addgevt.csv >qaddgevt.ics
nkf -wS qaddggl.ics >addggl.ics
nkf -wS qaddgevt.ics >addgevt.ics
del qaddggl.ics
del qaddgevt.ics
echo GoogleCalendarになくてLXにある予定は以下の通りです。
type addggl.csv
echo GoogleCalendarになくてLXにある終日イベントは以下の通りです。
type addgevt.csv
echo 必要があれば、addggl.icsやaddgevt.icsをGoogleCalendarで取り込んで下さい。


| | コメント (0) | トラックバック (0)

2009/02/16

予定シンクロをHP100LX/HP200LXとGoogle Calendarにも

今月Google SyncでMicrosoft Exchange ActiveSyncプロトコル対応が行われたことにより、iPhoneやWindows Mobile端末と、Google CalendarがOutlookを経由することなく同期できるようになりました。

従来Google SyncでサポートしていたBlack berry向けなどのsyncMLプロトコルと合わせ、Google CalendarはOutlookなしでも様々な小箱とシンクロできるようになってきています。

さて、手許のHP200LXでも、従来Outlook経由でGoogle Calendar Syncを利用してきましたけれど、こうなると、Outlook抜きでHP100/200LXとGoogle Calendarでシンクロしたくなります。

そういうわけで、今まで適当に書いてきたPerlスクリプトを組み合わせ、少し修正したりして、HP200LXとGoogle CalendarがOutlookを経由せず直接データ同期できるようにしてみます。


「g2lx.zip」をダウンロード

アーカイブの中身は以下の通りです。

g2lx_G.bat
シンクロ用のバッチファイルサンプル

g2lx.pl
二つのapptout用csvファイルを比較し差分出力するスクリプト

ics2csv.pl
GoogleCalendarでエクスポートしたics形式からapptout用csvファイルへの変換スクリプト

LX2GCAL.PL
apptout用csvファイルからGoogleCalendarでインポートできるics形式への変換スクリプト

LX側は、ぼくの場合A:\_DAT\APPT.ADBでAppointmentsデータとしています。apptout.exeでこのADBファイルからデータを抽出し、追加データを書き込むことができます。
Google calendar側は、インポート/エクスポート機能が標準であるので、それを使うことにします。試しにエクスポートしてみます。カレンダー設定画面に、「カレンダーをエクスポート」のリンクがあります。これをクリックすると、マイカレンダーをics形式でダウンロードできます。ぼくはマイカレンダーを二つ設定しているので、二種類のカレンダーがそれぞれicsファイルとなり、zip圧縮されてダウンロードできます。
もしくは、カレンダーを選んで詳細画面で、限定公開URLの[ICAL]のボタンから、そのカレンダーの全データをbasic.icsというファイルでダウンロードすることもできます。


そうすると、あと必要なのは、basic.icsからapptout形式のcsvにするスクリプト、二つのcsvを比較するスクリプト、追加予定をics形式で保存するスクリプトがあれば、ほぼ同期ができそうです。
この方法だと、LX側でも、GoogleCalendar側でも、既存の予定の内容を修正したときに、うまく修正できるか心配な部分があります。ここは割り切って、予定を変更したら、LX上では別の予定として登録されるようにして、不要になった予定はLX上で自分でDELETEキーを押して手動削除することにします。
また、Google Calendar側は、LX側と同じようにするといくつも同じ予定が登録されるのが気持ち悪いです。なぜなら。Google CalendarはLX以外とも同期をするからです。このため、UIDを設定して、LXからGoogle Calendarへ予定の追加は、一つの項目(件名+開始日時で判別)につき一度しかインポートできないようにUIDを設定するようにします。同じ予定を再度取り込みたいときは、生成したICSファイルのUIDをエディタで書き換えれば可能です。

このように、全自動シンクロではないけれど、手動で割りと簡単にシンクロできるようになります。
Perlスクリプトなので、Perlの動く環境で、かつGoogle Calendarを操作できるブラウザがあるPC環境にLXのフラッシュカードをさせば、LXでインターネット環境を作らなくても使えそうです。


運用手順は、

たとえば、Active PerlをインストールしたWindows PCなどで、

Google Calendarで「カレンダーのエクスポート」や限定公開URLの[ICAL]ボタンから、ICSファイルダウンロード
(basic.icsでダウンロードすることにします)

LXのフラッシュをPCにさす
(G:ドライブにマウントされたとします)

g2lx_G.batを実行
(LX側のappt.adbは自動的に不足予定が追加されます)

Google Calendarでaddggl.icsをインポート
(必要に応じて)


という感じです。

ぼくは、祝日や誕生日などの終日イベントデータはシンクロしたくなかったので、終日イベントは
別ファイルを生成して、必要な場合はそちらもインポートすればいいようにしました。


そういうわけで、LXとGoogle CalendarのデータをOutlookを経由せず直接シンクロして、それぞれ不足している予定項目を取り込むことができるようになりました。ぼくの用途では十分になりました。

内容修正された旧項目の手動削除といった手間がないわけではありませんけれど、それなりに快適です。バグや仕様で勝手にデータが消去されたりすることはないので、そういう意味では安心です。

| | コメント (0) | トラックバック (0)

2009/02/14

ファームアップE71

Nokia E71 Firmware Updateをしてみます。

E71052

100.07.76から200.21.118へのアップデート。ずいぶん間があいてしまいました。

付属USBケーブルでWindows PCとつなぎ、Nokia Software Updateで実行。十分程度で無事終了です。

すっかり初期化されてしまいましたので、一から設定のし直しです。

moperaU接続。アプリのインストールを全てにし、時間と場所を設定。

FontRouter LTで出島明朝フォントを入れて、+J(v1.0.0)も入れて日本語化完了。

Google Syncで電話帳復元終了。GooSyncでカレンダー復元完了。

Mail for ExchangeとGMailを設定。Google MapsとGMailアプリを入れると、もう一通り完了です。

ダウンロードアイコンの中にあったので、SkyfireやJoikuSpotも一応インストールします。Opera Mobileがサポートされていなくてまともに使えないのだけがE71の欠点です。

Firmware Updateで何か良くなっていないだろうか。カメラは暗めの部屋でも色がおかしくならないのは良い点です。
嫌な色あいは減ったような気もしますけれど、やはり青いです。また暗い部分のノイズも目立ちます。

20090214014

全体に良くなり、破綻がなくなってきた気がします。

それでもカメラはN82の方が、圧倒的に美味しそうに映ります。N82凄いなあ。

N82とF906iの組み合わせから、922SHとE71の組み合わせにすると、カメラはがっくり質が落ちてしまいます。V610かGR DIGITAL IIを持ち歩く必要が出てきそうです。

E71を久しぶりに使うと、やっぱり良いです。docomoが4月1日から外部(PCやPDA類)接続定額になるようなので、4月からは色々選択肢が増えるのが楽しみです。

| | コメント (0) | トラックバック (0)

2009/02/10

まずはN82でGoogle Sync設定

Google Syncですが、まずは毎日常用しているN82で設定してみます。

設定手順は、Helpページの通りです。

Nokia N-Series or E-Series (Symbian S60 3rd Edition) - Mobile Help


R0014623

S60 NシリーズのHelpでは、現在contactsのみ対応とのことです。

設定ですが、
リモートデータベースに「contacts」
サーバIDは、「Google」

R0014624

ホストアドレスは、「https://m.google.com/syncml」
ポートは、「443」
アカウントはGmailアカウントを使いました。

R0014627

早速同期を試します。

R0014619

問題なく同期しています。

R0014622

無事同期完了。GMailの連絡先にNokia N82の電話帳が反映されました。

| | コメント (0) | トラックバック (0)

« 2009年1月 | トップページ | 2009年3月 »