弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

» 2011-03-26の日記

日本大震災から2週間…

 3月11日午後に発生した東日本大震災から2週間が経過しております。被害は甚大で1万人を超える死者に行方不明と分かっている人数を合わせると約2万7000人にもなるのだとか。本当に悲しいことです。さらには家族全員が震災の被害に遭っていて届け出が出されていないケースも多数あると思われ、実際の行方不明者はまだまだ多いとのことです。何よりも原発事故が起きた地域では復興のための活動はおろか捜索活動ですらも進んでいないと聞きます。

 そして、テレビを観ているだけでは伝わらないこと(敢えて伝えようとしていないこと?)もまた、多かろうと思います。今回の震災でTwitterの有効性が改めて浮き彫りになりましたからね。ネット上での安否確認も活用されております。そういったネットメディアの台頭によって、旧態依然としたテレビでの一方的な情報の垂れ流し…殿様的な報道スタイルが徐々に崩壊してきていることへの焦りみたいなものも感じて滑稽でもあります。だから私はテレビが好きではないのです。

 話は変わって、次々に新たな問題が浮上する福島第一原発の状況も余談を許さぬ状況にあります。

 ニュースによれば、欧州上空でも日本から飛来したと思われる放射性物質が検出されているとか。遠く離れた国々でも放射性物質が検出されているということは、風向きによっては濃度の差こそあれ日本国内のどこでも検出される可能性が高いということですね。そして、その放射性物質が健康に被害を及ぼす量かどうかという問題が浮上してきます。

 今回の原発事故が今後、どのような方向に向かうのか、まだ余談を許さぬ状況です。心配しては暮らしていけませんが、無視することもできません。今はただただ、被災した地域の早期復興と被災された方々が1日も早く穏やかな日常に戻れますように心からご祈念申し上げる次第です。

 いずれにしましても「敵」は放射性物質だけではありません。他にもウィルスなど目に見えない「敵」がおりますね。ワクチンなどは接種後の死亡例などもあり不安に感じている方もいると思いますし。とにかく、日々の暮らしの中で黙視できない「敵」と戦う機会が多いですね。人は色々と難しい局面に立たされているのだなぁ…と改めて感じる今日この頃です。


HSPでのループ処理とか…

 Windowsで動作するフリーのインタプリタ型プログラム言語「HSP(Hot Soup Processor)」にて、仕事の中で行う作業を補助するアプリケーションを数々自作しておりますが、時々思い立って突然プログラムを書き始めることがあり、そういう時は集中してダーッと書いていくので後でソースを見返すと「力技(ちからわざ)にてゴリ押ししているところがたくさんあったりして笑えます。今日はその一例を挙げてみようと思います。

 今日ご紹介するソースは、週1回、取引先からメールで届くテキストデータを、自動で整形してこちらの欲しい形式に変換するアプリケーションです。確か以前、この日記の中で書いたことがあったと思います。立ち上がったプログラムのウインドウにメールの文章をコピー&ペーストして「処理開始ボタン」を押すと、文字列の整形処理が瞬時に行われ、成型後のデータが表示されるというものです。私はこうやってできたデータをさらにコピーしてIllustratorのテンプレートに貼る作業をしております。手作業でやる場合に比べると大幅な時間短縮になり会社的にはコストが削減できるのは言うまでもありませんが、それより何より、私の精神衛生上とてもよろしいのは言わずもがなプライスレスです(爆)。

 それでは、ダーッと書いたソースの一端をお見せします。これは先述した自作モジュールを使った文字列置換の処理の部分です。

W_QA(0) ="‡1‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡2‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡3‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡4‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡5‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡6‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡7‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡8‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡9‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA
W_QA(0) ="‡10‡" : W_QA(1) ="" : K_REP_S CHANGE_DATA,W_QA

 ざっと説明しますと、W_QAというのは文字列置換用に用意した配列変数です。W_QA(0)が置換対象の文字列、W_QA(1)が新たに置き換える文字列です。で、実際の命令がその後ろに記述している「K_REP_S CHANGE_DATA,W_QA」の部分です。こんな命令は本来HSPにはありません。HSPは標準では文字処理の命令が弱いので、自分で書いた文字処理用モジュール「kurage_mod」を使って色々なアプリケーションを開発しているのです。この命令「K_REP_S」もそう。特に文字の置換については自分で開発したモジュールがあるとえらく開発が進むので、自画自賛ですが重宝しております(笑)。余談ですが、自作の文字列置換命令「K_REP_S」は1度だけ実行する命令。対象の文字が何ヶ所にもわたり、そのすべてを置き換えたい場合のために「K_REP」という命令も用意してあります。

 さて、サンプルソースの1行目の場合ですと「”‡1‡”という文字列がテキストデータ上にあったならば取り去ってしまえよ」という意味になります。「‡」という普段使わない文字を使っているのは、間違いなく置き換えができるようにするためです。実はこのソースはプログラムの後半に出てくるもので、前半にも同じような処理があり、そこで「‡」を追加しているのです。理由は先ほども書いた通り通常使われない文字だから。プログラム序盤で「‡」を加え、中盤の整形処理で「‡」に囲まれた数字は通し番号だという認識をさせておき、サンプル部分の終盤で役目を終えた通し番号を削除する…そんな流れです。

 さて、サンプルソースに話を戻して…。同じような記述が10行にもわたって書かれていますね。我ながら恥ずかしいです(笑)。こんなのループ処理でもっと短く書けるだろう?って思いますよね。私の場合、気分が乗っている時は思考の流れを止めたくないので、ついループ処理などを後回しにしてしまいます。そのために膨大なプログラムを書くことになり、あとでソースを見直すと2分の1から3分の1位くらいの行数になってびっくりすることもあるくらいです(笑)。

 上記のサンプルをループ処理を使って書き直すと以下のようになりますよ。

W_QA(1) =""
repeat 10,1
	W_QA(0) ="‡" + cnt + "‡" : K_REP_S CHANGE_DATA,W_QA
	await
loop

 もうどうしようもないくらい短くなりましたね(笑)。これで先ほどのソースと同じ動作をします。repeat命令はHSP標準のもの。repeatの後ろのパラメーターの10は10回リピートせよという意味です。同じくパラメーターの1は、リピート中回数を示すシステム変数cntの始まりの数値をデフォルトの0からではなく1からにせよ、という意味です。あとは自作モジュールの命令「K_REP_S」で置き換えをしています。

 今回手を入れたアプリは、先日作った日々変わるテンプレートを簡単に用意できるアプリと関連性があるので、できれば統合したいところなのですが…他にもやらねばならぬことが山積しておりますので時間ができたなら着手したいと思います。

 それと、以前はこのモジュール「kurage_mod」を公開していたのですが、日記をWordPressにしてからそのページが非公開になってしまいました。もう少ししたら、そのページを書き直しモジュールを公開したいと思います。


固定ページ

最近の投稿

カテゴリー





カレンダー

2011年3月
 123456
78910111213
14151617181920
21222324252627
28293031  

過去の日記はこちら

キーワードで検索