Home > ほんとだすらい > SO902iの電話帳をハック!

SO902iの電話帳をハック!

さて今日は、予定していた水槽の換水が雨のため中止となり、
ぽっかり時間が空いてしまいました。
そこでケータイの機種変時に50音順に並び変わってしまった
電話帳データを都合の良い並びに変更してみました。
僕のケータイには約200件超のデータが登録されています。
数はたいしたこと無いのですが、やはり手作業ではしんどいですし、
間違いそうです。
そこで、先日導入したメモリースティックを利用してデータをPCに取り込み、
PCで作業した後に、メモリースティック経由にてSO902iに書き戻しました。
無事成功です。
これで、ツータッチダイヤルが正常に使用可能になりました。
大袈裟なタイトルを付けてしまいましたが、大したことはしてません。
期待せずにお読み下さい。

では、その手順について書きます。
使用ソフト:Microsoft Excel 2002  秀丸エディタ Version3.15
エクセル、秀丸ともにバージョン固有の機能を使用してませんので、
最近のものであれば、多少バージョンが違っても使えると思います。
1)SO902iの電話帳データ全件をメモリースティクにコピー
2)CARD0001.VCF等のデータが生成されるのでPCの適当なディレクトリにコピー
3)CARD0001.VCF等をエクセルで読み込む
  SO902iの電話帳の生データはPCで見ると、
  レコード、フィールドの区別無く全て縦並びとなっていました
  1レコードは1行に変更した方が作業効率がよいと思います
  この変更作業は単純定型作業なので、エクセルのVBAを利用しました
  Alt+F11で、VisualBasicエディターを起動し、下記のSubプロシージャをペースト、実行します
  1レコード1行となったデータは任意のフィールドでソートしたり、
  手作業で前後に入れ替えたり、ついでにグループを設定し直したりします
  その後、メモリ番号フィールドをエクセルのオートフィル機能を利用してピューンと書き換えです
4)気に入った順番に入れ替わったエクセル上のデータを秀丸エディタにコピーペースト
5)秀丸の置換機能で「タブ」を「改行」に置換(正規表現のチェックを忘れずに)
  秀丸では「タブ」=「\t」、「改行」=「\n」のように指定します
  エクセルのデータをコピーしてるので空改行も発生します
6)先頭に改行コードがある行を削除。「^\n」を置換(当然正規表現にチェック)
7)発着信に画像を設定している場合Base64でエンコードされた画像データの末尾にのみ
  空改行があるので、手作業で改行を入力
  無事終了すると、もともとSO902iが生成したデータと同じになります
8)秀丸でファィル名をユニークなもので保存(例:CARD0099.VCF)
  エクセルにある元のCARD0001.VCFは、もしもの時のバックアップとしても機能させるために、
  オリジナルのまま変更せずに終了
9)CARD0099.VCFをメモリースティック経由で、SO902i本体に上書き転送
10)データの修正が完了
僕の場合は無事成功しましたが、環境が違う場合データ消失の可能性もありますので、
ご利用される場合は自己責任で可能です。
ご質問には可能な限り返答いたしますが、全てに的確な回答はお約束できません。
自分用の備忘録なのでご了承ください。
エクセル用のSubプロシージャ

Sub レコードを1行へ変更するマクロ()
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range(“A1”).Select
ActiveCell.FormulaR1C1 = “ultrablue I love Kashiwajima!”
Range(“A1”).Select
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Selection.EntireRow.Insert
Range(“A5”).Select
Do Until (ActiveCell = “ultrablue I love Kashiwajima!”)
Selection.Cut
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range(“A1”).Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Selection.Cut
Selection.End(xlUp).Select
ActiveCell.Offset(0, 1).Range(“A1”).Select
ActiveSheet.Paste
Selection.End(xlToLeft).Select
Selection.End(xlDown).Select
Do Until (ActiveCell = “END:VCARD”)
Selection.Cut
Selection.End(xlUp).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range(“A1”).Select
ActiveSheet.Paste
Selection.End(xlToLeft).Select
Selection.End(xlDown).Select
Loop
Selection.Cut
Selection.End(xlUp).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Range(“A1”).Select
ActiveSheet.Paste
Selection.End(xlToLeft).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 0).Range(“A1”).Select
Loop
Selection.ClearContents
Range(“A1”).Select
Selection.EntireRow.Delete
End Sub

コメント:4

キャロライン 06-11-08 (水) 21:09

私の携帯アドレスも「ハック技」を使わせてもらってメモリ番号など一気に修正したいと思いやっている途中です。VBAなど存在自体を初めて知りましたが、なんとなくやってみたら上手く使えました。マクロや置換も普段使ったことがない技で驚き、自分で使えたことに感動さえしました。ソフトってこうやって利用するものなんですね。
ところでいざ、「本体に保存」とすると「保存できませんでした」とメッセージが表示されました。残念!!
考えるに、秀丸での文字コード(UTF-8)のせいかな・・・?と原因を疑っているのですが文字コードは関係あるのですか?

ultrablue 06-11-08 (水) 21:17

文字コードは、ケータイにもよると思いますが、
Windowsで普通に読むユーザが一番多いと思うので、
シフトJISでの設定が一般的だと思います。
秀丸エディタの
文字コードを「シフトJIS」
改行コードは、「CR+LF」
に変えて、
秀丸のくだりからやり直してみればいかがですか?
もし、何かあっても元のバックアップに戻せばいいので、気楽にためしてみてください。

キャロライン 06-11-08 (水) 21:53

おお、さっそくありがとうございます!!
文字コードだけでなく、改行コードも違ってました。
文字化けが直らなくなったのでまた元データをエクセルで開いて修正するところからやらなくてはならなくなってしまいましたが二度目なのでスムーズにいけるでしょう。
やってみます。

キャロライン 06-11-08 (水) 22:20

上手く出来ました!!!!!
やはり文字コードと改行コードが原因でした。さっそく使い勝手を確認してみましたが最高です。いつも使いながらストレスを感じていましたがスッキリしました。
どうもありがとうございました。

コメントフォーム
Remember personal info

Home > ほんとだすらい > SO902iの電話帳をハック!

feeds

Return to page top