2019年8月15日木曜日

写真を連番に メディア上で番号振り直しの VB アプリ  2

大昔に作ったプログラム ... 。
今は問題無く使えていますが、将来を考えると、
そろそろ、新しい器に入れ替えて置いた方が ... 。
斯くして、懐古そして奮闘が始まるのでした。


Visual Studio / VB 2008 SP1 と言う古い環境で作ったものがあります。

カメラ撮影画像のナンバーリングを調整するものです。
一眼では然程問題にならないのですが、
コンパクトで撮影し、削除と撮影を繰り返すと、番号が歯抜けになります。
気分的にすっきりしませんので、
当初は、コンパクトを初期化、再設定し直す事で、飛び番号を回避していました。
でも、再設定時、慌てているので、ミス(設定忘れ)が紛れ込みます。
それを防ぐ意味で、作ったのが これ でした。
https://shiroyuki-mot-says.blogspot.com/2012/08/photo-numbering.html
画像ナンバリングは 後から直せばいいや! と開き直ったのです。

おおぅ~、懐かしの古のスクリーンショットから。.


レアケースで正確にハンドリング出来ないミスも含まれていた気がします。
直してあった様な、無かった様な ... 。

そうこうしているうちに、時は流れ、
プログラム環境も色々と変化してしまいました。
折角作ったプログラムですが、
出番も少なく、番号が飛んだまま登録してしまったケースも多々ありました。

現状、大きな問題がある訳では無かった筈なのですが、
余裕があるうちに、移し替えようと思い立ったのです。

単独実行前提に作ったあった訳ですが、
その後、統合環境的にプログラムを WPF で 整備して来ましたので、
写真絡みは、ひとつの大きなものになって来ています。
その中に、組み込める前提で書き直そうと! ... 。

それは、Form から Window (WPF) への移行でもあります。
.Netframework も 3.5 から 4.x へ、になります。
双方が混ざるのは、避けて置こう、と言う判断です。
本来なら、
最新の VS2019 若しくは VS2017 、なのですが、
このシリーズは、既に、VS2013 上に構築していますので、
其れに載せます。

皆さんがどう移行されているかは存じ上げませんが、
自分は、大抵のケースで、最初から書き直します。
安易な 移行 をせず、1から再スタートです。
結局、前と違ったロジックになる事も多いです。
自身が、進歩しているか後退しているかは、棚に上げてですが ... 。

Form から WPF へ なので、
画面設計からやり直しです。
同じ土俵なら、コピーが出来るのですが、
お勉強も兼ねて、こつこつと、ですね。
WPF の画面設計は、煩雑です。  苦手かも。
本音は、画面設計ではコピー等で、楽をしたい! のですが ... 。

画面設計が終われば、
後は、イベントハンドラを埋めて行きます。

書き直しに伴い、
動作を変える場合も多いのですが、
今回は、基本的に、既存のものと同じ動作をなぞっています。

でも、改めて、眺めて見れば、
直さなければいけない箇所が ... 結構 一杯 ... でした。
結局は、既存のものは 直しきれてはいませんでした。
使う頻度が低いので、汲み上げ切れていなかったのですね、問題点。

お陰で、苦労が増えた訳ですが、
差し当たり、
当面の延命は叶った様です。

序でしたので、このプログラムを呼び出す前に、
事前に 別のプログラムからも 飛び番号の有無 が分かる様に、改良も加えました。
公開された Function の追加ですね。
事前に、飛び番号があれば、このプログラムを実行する機会を与えられる訳です。
忘れて飛び番のまま登録 の回避にも繋がる様に、です。.

以下に、他の Window からの呼び出しと単独実行例(コンパクトと一眼)を示します。
起動時に既指定のものが用意されているのか、起動後にメディアを選択するのか、の違いです。
これらは共に、テスト用に用意した USB メモリ上のデータ を扱っています。
実際には、メディアを直接操作します。  DCIM 配下で無いと処理出来ません。




これで、心置き無く、コンパクトカメラで削除が出来ます。
一眼でも、後から弄れます。
番号は後から直せばいい! の心境で、
撮影に集中出来る ... 、それは、素晴らしい事です。
(別に、書き直さなくても、主目的からは同じだったのですが、心の蟠りが晴れた気分です。)


冒頭で書いた様に、
同じカメラメーカーの提供するカメラですが、
ファイル削除への対応の違い ... 、
コンパクトと一眼で設計思想が違うのか、
こんな処に差異が生じている訳です。
組み込みソフトの前提条件の違い ... 。
ソフトも、ましてや、自分の書いたプログラムも、同じです。
一長一短。
あれこれ考えて作っている筈ですが、
なかなか、微に入り細に入り、行き届いたものを作るのは難しいですね。
そして、何よりも、使わなければ効果は出ない訳で、
ユーザーインターフェースや他との連携は重要であると再認識です。



0 件のコメント:

コメントを投稿