« 子供のためのマルチツール | メイン | WILLCOM 03 用の自作ソフトを作ろう! #13 一旦完成、簡易画像エディタUMs03 »
November 19, 2008
WILLCOM 03 用の自作ソフトを作ろう! #12 まだあった日本語ファイル名問題
WILLCOM 03 用の自作ソフトを作ろう! #12 まだあった日本語ファイル名問題
日本語のフォルダの中の一覧も、フォルダの中の日本語ファイル名もちゃんと取得できるようになって嬉々として、簡易画像ビューアを作っていたところ、日本語ファイル名に関して問題が残っていることを発見。
TPictureの LoadFromFileも日本語のファイル名、フォルダ名が通らないのです。
ソースを見るとここでもUTFtoSysが使われている…どうもUTF8ToSysがあんまりちゃんと動いてない、もしくは私が使う前に必要な前提条件の設定等を忘れている感じがします。
しかし、これ、ソースいじってもコンパイル済みユニットが再コンパイルされないんですよねぇ。DElphiのIDEに慣らされちゃってるからmakeの使い方とかよくわかんなくて(^^;;
しょうがないので、LoadFromFile内でやっているようにFileStreamを使って読み込むことにしました。
ただし、LazarusのTPictureにはLoadFromStreamが無くて、LoadFromStreamWithFileExtというのが用意されています。
これはファイル名の命名法が適当なプラットフォームで使えるようにファイル名と関係ない形式の画像でも読み込めるようにするためかと思われます(なんとか.BMP という名前だけど中のデータはJPEGファイルみたいなものでもOKのように)。
こちらとしては、filestreamの作成時とLoadFromStreamWithFileExt使用時の2回拡張子を使うことになるので冗長な感じがしますが、これは仕方が無いということで。
で、このLoadFromStreamWithFileExtとUTF8ToSjisを使った画像ロードルーチンを組み込んで動かしてみると、見事に成功(^^)
これにて日本語の問題解決となりました。
(多分 SavetoFileもこの手の問題はあるだろうから今回のようにFileStreamを使うことになりそう。まだ見てないけど)
投稿者 coboo : November 19, 2008 12:18 PM
トラックバック
このエントリーのトラックバックURL:
http://coboo.homeip.net/~coboo/mt/mt-tb.cgi/494