« カルボナーラのレシピ | メイン | WILLCOM 03 用の自作ソフトを作ろう! #10 VGAモードに切り替えろ! »

November 12, 2008

WILLCOM 03 用の自作ソフトを作ろう! #9 2byteコードファイル名その後

WILLCOM 03 用の自作ソフトを作ろう! #9 2byteコードファイル名その後
画像がロードできるようになっても、それの指定ができなければ意味がないのでいろいろ試行錯誤しています。

で、多少わかったことが。

FindFirst,FindNextでUTF8がうまく扱えるようにした、FindFirstUTF8,FindNextUTF8というものがFileUtilユニットで定義されていました。
中身を覗いてみると、単純にpathをUTF8ToSys()で変換して渡して、受け取ったSearchRecのFilenameをSysToUTF8()で戻しているだけなんですけど(^^;
で、これに'\*.*'を与えて返ってきたSEarchRecのFileNameをmemo.linesに足してくと、おぉ、ちゃんと文字化けもなしでmicroSDカードとして追加されている(^^)
ってことは、まず、SearchRecで帰ってきた値をSysToUTF8()で変換してそれをmemo1.linesにaddして正常に表示されている点からSearchRecの戻り値はansiであり、memoはUTF8を受け取って表示しているというのは間違いない。

では、与えるほうはどうなのか?
'\*.*'では半角しか含まれていないので、これを'\microSDカード\*.*'としてみるが、findfirstUTF8()の戻りはうまくない。
(成功しているがfilenameが戻ってこない)

FindFirstUTF8を使わずにFindFirstを使ってたときは、2bytコードフォルダ名や2byteコードファイル名は帰ってきてなかった。
ということは使うべきなのはやはりFindfirstUTF8なんだろうから、Findfirstにansiを渡せる流れを作ってやればいい。

問題は文字列代入で入れている文字はUTF8なのか?

代入されている文字列長を調べると21文字でこれはank1バイト,漢字3バイトのUTF-8に合致する。

けっきょくのところUTF8->Sysの処理がうまく行ってないのでは?と思うのですが、今のところ漢字の問題はこの辺まで。

いよいよUTF8ToSysの変換を追いかける必要がありそうです。

投稿者 coboo : November 12, 2008 12:39 PM

トラックバック

このエントリーのトラックバックURL:
http://coboo.homeip.net/~coboo/mt/mt-tb.cgi/489

コメント

コメントしてください




保存しますか?