[delphi-users:4204] バイナリ形式のFormファイルを変換する・・

559 views
Skip to first unread message

遊歩人

unread,
Jul 12, 2015, 5:49:32 PM7/12/15
to delphi...@freeml.com
こんにちは。

Delphi5で作られたシステムのマイグレーションをしています。

バイナリ形式のFormファイルを、テキスト形式に変換するため、Delphi XE7 に付属
の「convert.exe」で変換しています。

コマンドラインで次の様にしました。

C:\Program Files (x86)\Embarcadero\Studio\15.0\bin\convert.exe -i -s -t
D:\A\urptSEDP0010.dfm

実行結果も次の通りに表示されます。
-----
Delphi Form Conversion Utility Version 7.1
Copyright (c) 1995-2014 Embarcadero Technologies, Inc.
D:\A\urptSEDP0010.dfm => D:\A\urptSEDP0010.dfm (text)
1 files processed in D:\A\urptSEDP0010.dfm
-----

変換は終わったように見えるのですが、内容は文字化け・・? なのか、上手く行きませ
ん。

どなたか、同様な事をしたことがありますか?

遊歩人


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【無料で本格コーヒーマシンが使えます】
ご自宅用にもマシンが1台もらえます。
「ネスカフェアンバサダー」
少人数の職場でも大歓迎です。詳しくはWEBサイトをチェック!
http://ad.freeml.com/cgi-bin/sa.cgi?id=naXtu
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jul 12, 2015, 11:48:02 PM7/12/15
to delphi...@freeml.com
こんにちは。

Delphi 5 だけはフォームファイルが特殊です。
http://ht-deko.com/tech032.html

Delphi 5 の DFM はバイナリであろうがテキストであろうが ANSI で保存されます。
Delphi 6 以降だと 0x80 以降の文字は 10進表記のコントロール文字列 (UTF-16) でエンコードされます。

一度、DFM コンバータで変換してみてください。
http://ht-deko.com/oldjunk.html#DFMCONV

また、変換したテキスト形式 DFM は正しいのに、実際に IDE で開くと文字化けしているように見えるので
あれば、
Font プロパティを確認してみてください。Tahoma で DEFAULT_CHARSET になっている事があります。
これについては以下をご覧ください。

[コードページとロケール (DEKO の雑談)]
http://ht-deko.com/ft0802.html#080224_04

--
by DEKO
-----------------------------
http://ht-deko.com/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
あの家具欲しいんだけどなかなかタイミングが。。。
今がそのチャンスです☆家具・インテリア大セール開催
100%価格保証だから安心してお買い求め頂けます!!
人気の北欧家具・おしゃれなインテリアなど最大70%OFF
http://ad.freeml.com/cgi-bin/sa.cgi?id=nbbTR
------------------------------------------------------[freeml byGMO]--

トム猫(はやしつとむ)

unread,
Jul 13, 2015, 3:53:06 AM7/13/15
to delphi...@freeml.com
はやしです。

あれ?これってバイナリ形式に使ってもいいんですか?

>・バイナリ形式DFMのチェックは入れてありますが、バイナリ形式DFMを喰わせないようにして下さい。

と書いてあるのでダメなのかと・・・

+++++++++++++++++++++++++++++++

From Hayashi "tomneko" tsutomu
Mail: tomn...@gmail.com
Web: http://www.tomnekosoft.com

+++++++++++++++++++++++++++++++


2015年7月13日 12:47 DEKO <delphi...@freeml.com>:
MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
え!27日で英語がペラペラになるって本当?
今話題の「たった一つの事」を覚えるだけの学習法とは?
↓↓
http://ad.freeml.com/cgi-bin/sa.cgi?id=nbfgI
------------------------------------------------------[freeml byGMO]--

DEKO

unread,
Jul 13, 2015, 4:28:13 AM7/13/15
to delphi...@freeml.com
> あれ?これってバイナリ形式に使ってもいいんですか?

説明が悪かったですね…もう少し詳細にやります m(_ _)m

1.convert.exe でバイナリ DFM から テキスト DFM に変換。
2.テキスト DFM をテキストエディタで開く。
 ・日本語がそのまま格納されている -> DFM コンバータで変換 -> [完了]
 ・UNICODE &コントロール文字へエンコードされたものになっている -> 新しい Delphi で読み込める
-> [完了]
 ・日本語部分が化けている -> 3.へ
3.古い Delphi に付属の convert.exe (Delphi 7 付属のものとか) で変換してみる -> 2 へ

おそらくこのフローでいけると思います。

・ベタ ANSI (SHIFT_JIS) になっている。
・変換したテキスト形式 DFM の時点で文字化けしている。
・ちゃんと変換されているけれど、Font プロパティの設定が不適切。

フォームを開いて文字化けする原因はこの三つのうちのどれかだと思います。

# 比較的新しいバージョンの Delphi に付属の convert.exe は、
# Delphi 5 のバイナリ DFM を正しく変換しない可能性があります。

--
by DEKO
-----------------------------
http://ht-deko.com/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【無料で本格コーヒーマシンが使えます】
ご自宅用にもマシンが1台もらえます。
「ネスカフェアンバサダー」
少人数の職場でも大歓迎です。詳しくはWEBサイトをチェック!
http://ad.freeml.com/cgi-bin/sa.cgi?id=nbfD6
------------------------------------------------------[freeml byGMO]--

Reply all
Reply to author
Forward
0 new messages