- ベストアンサー
Visual Basicでファイル内の文字コード変換をする方法
- Visual Basicを使用してファイル内の文字コードを変換する方法について教えてください。
- 質問者は、汎用機用のデータをパソコンで使用するために、EBCDICからJISへのコード変換、パック数字からアンパック数字への変換、そしてCSVファイルへの書き込みを行いたいと考えています。
- 現在のプログラムは動かなくなってしまい、作成者に連絡が取れないため、質問者はVisual Basicで新しいプログラムを作成するか、Visual C++で解析して修正するかの選択を迫られています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コンパイルができているのにビルドができないという状況がよくわかりません。 *.obj にはできるけれども、.exe までは到達しないということでしょうか? もしよろしければどんなエラーがでているか教えてもらえませんか? 大量に出ているのなら先頭付近の一部でよいです。 おそらくプログラムそのものの問題というよりは、作成された当時と現在との 環境の違いが原因で起きています。 可能なら、作成時に使っていC/C++コンパイラとそのバージョン、 現在ビルドを試したコンパイラとそのバージョンを教えてください。
その他の回答 (2)
- y_y_co
- ベストアンサー率23% (11/46)
EBCDICは、IBMにより定義された文字コードです。基本的にここの変換がネックとなります。VB又はC++などの言語だけでは変換はできません。文字コード対応テーブルのようなものを使い、1文字づつ変換して行かないと文字化けの可能性大となります。また、EBCDICにはバージョンがあるのでこれにも注意して下さい。 このような理由で、最低でも(1)は、コンバートソフトのようなものを使用して下さい。フリーのものもあるようです。 (2)は、(1)が上手くできれば結果できていることになります。 (3)は、上が上手くできていれば、VB又はC++内の記述により可能です。
お礼
いろいろとご助言をいただきまして、ありがとうございました。あれからいろいろ調べました。退職した人から直接引継ぎを受けた人に再度引継ぎ内容を確認し、環境などを確認した結果、開発されたパソコンの環境と、現在ソースプログラムがあるパソコンでは環境が異なっていたため、ビルドをすることができなかったようです。環境をあわせたところ無事にビルドできました。
- sakusaker7
- ベストアンサー率62% (800/1280)
EBCDICからJISに変換して、パック形式の数値データをアンパック形式にしてから CSVフォーマットで出力するということだとしたら、 CSVで吐き出すところでテキストになるのだから、数値データは パック形式だろうがアンパック形式だろうが関係ないような気がするのですが、 本当にそういうロジックなんですか? あと漢字コードにいわゆるJISコードを使うと、文字データの一部として ',' とか '"' のようなあまり見たくないデータが出てくる可能性が ありますがその辺はどう対応されるのでしょう? Visual C++で書かれたというプログラムがなぜ、どのように動かない (コンパイルすら通らない?) のかがわかりませんが、Windowsプログラムのわかるプログラマをどうにかして 確保して動くように修正させるようにするのが無難なような気がします。 VBでもできないことはないプログラムかもしれませんが、不確定要素が 多くて手間が読めないのが怖いです。
お礼
いろいろとご助言をいただきまして、ありがとうございました。あれからいろいろ調べました。退職した人から直接引継ぎを受けた人に再度引継ぎ内容を確認し、環境などを確認した結果、開発されたパソコンの環境と、現在ソースプログラムがあるパソコンでは環境が異なっていたため、ビルドをすることができなかったようです。環境をあわせたところ無事にビルドできました。
補足
ご回答いただきまして、ありがとうございます。 元データがパック形式なのでアンパック形式にしないといけないのかなと思っていたのですが、実際のロジックとは違うようですね。 Visual C++で書かれたプログラムはコンパイルは通るのですが、ビルドをしようとするとエラーがでて実行ファイルが作れませんでした。メッセージがでていたのですがその意味すら現在は解明できていない状態なのです。
お礼
いろいろとご助言をいただきまして、ありがとうございました。あれからいろいろ調べました。退職した人から直接引継ぎを受けた人に再度引継ぎ内容を確認し、環境などを確認した結果、開発されたパソコンの環境と、現在ソースプログラムがあるパソコンでは環境が異なっていたため、ビルドをすることができなかったようです。環境をあわせたところ無事にビルドできました。