変換テーブルを実行ファイルに埋め込むには?


まこ  2004-07-05 10:42:13  No: 53903

初めて質問させていただきます。
889F,4E9C
88A0,5516
のようなSJISからUNICODEへ変換するための
CSVファイルを実行ファイルに埋め込みたいのですが、
どのようにすればよいのでしょうか?
実行ファイルとそのCSVファイルを同じフォルダに
置いておくという方法はわかるのですが、
コンパイルしたときに実行ファイルに
埋め込まれるようにしたいのです。
よろしくお願いいたします。


シャノン  2004-07-05 18:22:33  No: 53904

ファイルを EXE に埋め込むというと、まずリソースにするのが考えられます。
また、今回のような場合なら、プログラム中に直接書いてしまうという手もあります。


36NET  2004-07-05 21:14:19  No: 53905

参考になるかわかりませんがEXEにファイルを追加するにはこんな方法もあります
http://www.inet-lab.org/ted/program/prog058.html


まこ  2004-07-06 08:48:38  No: 53906

シャノン様、36NET様、お返事ありがとうございます。
リソースにする方法というのは、どういった方法でやるのでしょうか?
#include "****.csv"  のような形で埋め込めるものなのでしょうか?
一応やってみたのですが、うまくいきませんでした。
もう少し詳しく教えていただけますか?
よろしくお願いいたします。


シャノン  2004-07-06 18:24:23  No: 53907

あなたの環境を書いていただかないと、適切なアドバイスができません。
VC++ のバージョン、MFC 使用の有無、現在リソースを使っているか、等。
現在リソースを使っているかどうかは、プロジェクトに *.rc ファイルがあるかどうかです。


tetrapod  2004-07-06 19:12:07  No: 53908

SJIS<->UNICODE の変換なら自分でテーブルを持たずとも
MultiByteToWideChar とか逆とか使えばいいと思うが。
全文字の相互変換データを書くととんでもない分量になりそう。
っていうか文字コードの変換なら車輪の再実装は避けたい気がします。


まこ  2004-07-07 06:57:13  No: 53909

シャノン様、tetrapod様、お返事ありがとうございます。
こちらの使用環境を書かずに申し訳ありませんです。
わたしはVC6.0を使っているのですが、
できれば、C言語の範囲?でやりたいと思っています。
コマンドプロンプトで「****.exe」として
動かすようなプログラムを作りたいと思っています。
ですから、MFCも使用していないと思います。
また、リソースというものもよくわかっていないのですが、
*.rcというファイルはみつかりません。
よろしくお願いいたします。


tetrapod  2004-07-07 17:53:57  No: 53910

いやだから、最終的にやりたいことは何なのですか?それがわからない。
1) SJIS-UNICODE の変換がしたい
2) リソース埋め込みがしたい
3) 自己展開型 EXE みたいなことがしたい
4) まったく全然別なこと

1)なら MultiByteToWideChar を使えばいい。
2)ならリソースを作ればいい


まこ  2004-07-07 19:42:25  No: 53911

tetrapod様、お返事ありがとうございます。
わたしは、2)の「リソースの埋め込み」という
方法でやりたいのですが、リソースというのは
どのようにして作成するものなのでしょうか。
度々すみませんが、よろしくお願い致します。


tetrapod  2004-07-07 19:51:56  No: 53912

いやだからそれは「手段」であって「目的」ではない。
手段と目的を取り違えるのは遠回り。
目的は何?
# 技術的興味を満たすことであればそれが目的といっていいが。

飛行機に乗りたいのか、(羽田行け)
北海道に行きたいのか、(飛行機とか列車乗れ)
蟹食べたいのか、(近くの蟹メシ屋行け)
北海道で蟹食べたいのか、
で、答えは変わってくると思う。

リソースが何か、どう作るかの説明をするには掲示板のスペースでは不足だと思う。
入門書を読むほうが速いし判りやすいと思う。


まこ  2004-07-07 23:26:13  No: 53913

tetrapod様、度々のお返事ありがとうございます。

>手段と目的を取り違えるのは遠回り

仰る通りですね。
わたしのそもそもの「目的」は、SJIS2UNICODEで
コードの変換をすることでした。
それはtetrapod様の教えてくださった、「MultiByteToWideChar」を
使えばできるのだと思います(未だ、確認しておりませんが)。
ただ、文字コードにはJISやUNICODE以外にも、メーカー固有の
コード体系などいろいろありまして、それにも対応させるためには、
テキストデータの変換テーブルを持ち、それをプログラムに埋め込むという
プログラムを作っておいた方が、いいなと思い「リソースの埋め込み」
という方法でやってみたいということになったのです。
わたしの中で当初の目的
「変換テーブルSJIS2UNICODEを実行ファイルに埋め込むには?」から、
「リソースとは何か?」という事にかわってしまったことが、
よくありませんでした。申し訳ありません。

>リソースが何か、どう作るかの説明をするには掲示板のスペースでは不足だと思う。

これも仰る通りでした。
わたしもリソースについて、勉強を始めました。
軽い気持ちで大きな事を教えてもらおうとしているなぁと
反省しております。
もう少し理解が深まってから、また質問をさせてください。

色々とありがとうございました。勉強になりました。


シャノン  2004-07-08 03:06:31  No: 53914

> ただ、文字コードにはJISやUNICODE以外にも、メーカー固有の
> コード体系などいろいろありまして、それにも対応させるためには、

そんなあなたに ICU 、かな?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加