marm.nakamuraさま。そう言って頂けて大変嬉しいです(^^
イレギュラーな使い方なので怒られるんじゃないかとヒヤヒヤしていました。
昔に良く使っていた「S-LaunchXP」というゲームランチャーの更新が途絶えた頃、
「欲しい機能が無いなら自分で作ってしまえ!」のX68ユーザーの精神で、
エミュレーター設定にユーティリティー系のスクリプトを登録して機能を
追加していたことがあったので、その時の経験から作ってしまいました(^^;
ただ、プライマルキーを変更すると「file_title」カラムとの整合性が崩れるのが
悩みどころで、別に整合性がとれなくても、スナップ画像の表示や更新も問題なく
出来るので良いのですが・・・
それでも、なんか気になってしまって対処方法を考えていまして、クエリーを作って
整合性に問題が出たタイトルをリストアップするところまでは出来ました。
SELECT * FROM list_view WHERE
file_title !=substr(
rtrim(substr(file_name,1,length(file_name)-length(ltrim(file_ext,'.'))),'.'), -- P-Keyから拡張子削除
length(file_name)-length(file_title)-length(ltrim(file_ext,'.')), -- P-Keyのパス文字数+1
length(file_title));
file_title + file_extの文字数を計算して、プライマルキーからファイル名(拡張子無し)部分を
取り出しfile_titleと比較しています。ピリオドを抜いているのは、file_extのデーターが
機種管理データー内に登録された拡張子から抽出して作られているせいなのか、ピリオドが
含まれたり含まれなかったりする為です。(私の登録の仕方が悪いせいなのですが・・・)
このクエリーも完璧では無くて、拡張子が登録されていないファイルを誤検出します(^^;
後、私自身ゲームをほとんど圧縮していないので、圧縮されたファイルの処理に関しては、
まったく考えていないので不完全なクエリーです。もっと良い書き方あるのかな?
最近、HSPがSQLiteライブラリを持っていることを知ったので、データーベースを直接操作して
整合性の修正と同時に、スクリーンショットのパスも自動修正できるツールを作れないか考えてます。
INNER JOIN 機能を使うと、SQLコマンド一発でスナップパスの情報も一緒に調べられて便利ですね。
こういうこと考えてるだけでも凄く面白いです。ボケ防止に良い頭の体操になりそうです(^^;
本当にSQLiteって面白いですねー