Hatena::Groupkeiroku

~DTPとかFlexとかFlashとかを中心に勉強中~

※初学者が右往左往しております。万が一記事内のスクリプトを利用される際は、恐れ入りますが自己責任にてお願いいたします。

2012-06-29

【Perl】split して join すると項目が減ってる件

03:46

昔よくハマった。

そして今日もやらかしたので、メモ。

split(',',@array,-1);

splitの分割数は、第3引数で指定しない場合、自動で判断される。

その際、最後の項目が空白だと削除。

空白が複数だとまとめて削除。

第3引数に-1を指定すると区切り文字の数だけ分割する。

2012-06-26

【Perl】encoding(shiftjis)でdoes not map to Unicode が出る件

20:05

open $fh, "<:encoding(shiftjis)", $fileName;

ググるとたくさん出てきますが、備忘録ということで。

エラーの元はwindows機種依存文字らしい。

shiftjisではなくcp932を使うと正しくデコードできる。

open $fh, "<:encoding(cp932)", $fileName;

2012-05-17

【Flex, Action Script】マウスイベントのターゲットの話

11:45

マウスイベントなどで、イベントリスナを貼りつけたコンポーネント自体が反応する場合。

下のように書いたら、うまくいかない。

protected function mouseOverAction(ev:Event):void
{
	ev.target.alpha = 0.4;
}

イベントリスナを処理するオブジェクトが取れないノカ!?

とビクビクしながらリファレンス見たら、ちゃんと書いてありました、スミマセン。


http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html#MOUSE_OVER

ポインティングデバイスの下にある InteractiveObject インスタンスです。
target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。
現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。

なるほど。


protected function mouseOverAction(ev:Event):void
{
	ev.currentTarget.alpha = 0.4;
}

↑が正解の越後製菓

2011-09-22

【Perl他】インクリメント/デクリメントで、基本は大事という話。

| 02:11

インクリメントとデクリメント(++演算子、--演算子)のはなし。

参考サイト:http://rfs.jp/sb/perl/02/03.html

 

引数の前についた場合、加算(減算)した後に値を返す。

#$bは未定義
$a = ++$b;
if($a){ print "good"; }
else{ print "bad"; }

$aには1が代入されて、printはgood。

 

引数のあとについた場合、加算(減算)する前に値を返す。見慣れた形。

#$bは未定義
$a = $b++;
if($a){ print "good"; }
else{ print "bad"; }

$aには0が代入されて、printはbad。

 

これを利用して、

foreach (@array) {
	push(@uniq,$_) unless $double{$_}++;
}

@arrayから重複を省いた配列@uniqが得られる。

 

ぇ? あ、そう、基本ですか。

ソーデスヨネー。

…あ、モノは投げないでクダサイ。

【DTP】バージョン管理

| 14:57

「バージョン管理 DTP」でググると、悲しい結果に。

ピッタリはまるツールも、定石も見つからず。

皆さん、どうしてるんでしょう??

ドキドキしながら、上書き確認を「OK」してるのか?

そんな訳ない。

ディレクトリ同期とか自動バックアップとか、そのあたりか。

その場合、競合の対応とか、ファイルのバージョンはどうなってるのか。

何か良い方法を、教えてエライ人。

【はてな】あしかを使ってみました。

| 14:41

あしかを使ってみたくて、思いついたタスクをいくつか登録してみました。

シンプルな分、直感的で好感触。

ということで、使い方相談させてください > Keirokuメンバー

nngannga2011/09/23 13:48ここで
http://keiroku.g.hatena.ne.jp/nnga/20110909/1315571775
重複を削除するワンライナー(uniq)、(元ファイルの順番を保持)として書いた(unlessとif ! は同じ)
perl -ne 'print if!$line{$_}++' test.txt

あとこのページに
http://docstore.mik.ua/orelly/perl/cookbook/ch04_07.htm
%seen = (); @uniq = grep { ! $seen{$_} ++ } @list;
というやり方が載っていた。

日本語目次サイトはこちら
http://www.sarinaga.com/progtoy/perlcookbooklink.html

nngannga2011/09/23 22:54あとInDesignはドキドキしながら上書きしてます。