2009/05/21(木) [n年前の日記]
#1 [prog] Perl/TkとConfig::Simpleでハマり
昨日作成したスクリプト(exe化したもの)を、ActivePerlをインストールしていない親父さんpcに入れてみたらちゃんと動いてくれた。が、親父さんの使い方からすると、いくつか修正しなければいけない点があることに気付いたり。その中の一つに、htmlのページタイトルをその都度指定したいというソレがあって。であれば、初期値文字列をiniに含めて…と修正したところでハマったり。
スクリプト自体をUTF8で書くことと関連して、iniをSJISで書くか、UTF8で書くかなどの問題もあるようで。
サンプルスクリプトはこんな感じ。
スクリプト自体をUTF8で書くことと関連して、iniをSJISで書くか、UTF8で書くかなどの問題もあるようで。
サンプルスクリプトはこんな感じ。
#!/usr/bin/perl -w # # Config:Simple と Tk のテスト # スクリプト自体は utf8で記述 use strict; use warnings; use utf8; use Tk; use Encode; use Config::Simple; my $mode = 3; # iniファイル読み込み my $title = ''; if ( $mode == 0 ) { # NG : ini が shiftjis my $cfg = new Config::Simple('setting_sjis.ini'); $title = $cfg->param('setting.title'); } elsif ( $mode == 1 ) { # NG : ini が utf8 my $cfg = new Config::Simple('setting_utf8.ini'); $title = $cfg->param('setting.title'); } elsif ( $mode == 2 ) { # OK : ini が shiftjis my $cfg = new Config::Simple('setting_sjis.ini'); binmode STDIN, ':encoding(shiftjis)'; $title = decode('shiftjis', $cfg->param('setting.title')); } else { # OK : ini が utf8 my $cfg = new Config::Simple('setting_utf8.ini'); $title = decode('utf8', $cfg->param('setting.title')); } # Tk 初期化 my $mw= new MainWindow; $mw->title("Config::Simple and Tk test"); $mw->fontCreate('MS',-family => 'MS ゴシック'); $mw->optionAdd('*font' => 'MS 9'); $mw->Label(-text => "タイトル")->grid(-row => 0, -column => 0); $mw->Entry(-textvariable => \$title)->grid(-row => 0, -column => 1); MainLoop;encoding() とか decode() とか、さっぱり判ってないまま巷のソレをコピペでアレコレなのです。
[ ツッコむ ]
#2 [prog] EXIFとかIPTCなるものがよくわからず
jpg画像にタイトル文字列を含めてソレをPerlスクリプトから読み込めたら画像にタイトルがつけてある画像一覧html等を出力できるかな、と思いついたのだけどタイトル情報をどうやって付加・編集するのかで悩んだり。
- Windows XP のエクスプローラで画像のプロパティを表示してタイトルやコメントを付加。
- IrfanView で画像情報を表示して以下略。
- XnView でプロパティを表示して以下略。
- Windows Live フォトギャラリー で「タイトルを追加」。
- Picasa で「説明を追加」。
[ ツッコむ ]
以上、1 日分です。