DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB6と.NETでのファイルの読み込み

環境/言語:[VB6/VB.NET]
分類:[VB6以前]

VB6と.NETについてファイルの読み込み方法について質問があります。

1.テキストファイルの読み込み方について
VB.NETでは

Dim sr As New System.IO.StreamReader(TextBox1.Text, & System.Text.Encoding.GetEncoding("euc-jp"))

としました。

これがVB6ではどのようになるのかわかりません。
読み込みたいコードはShift-JIS、Euc-JP、Unicodeです。
.NETの場合はGetEncodeingの引数をかえたら読み込めました。

ただ、,NETの場合、読み込むファイルがUnicodeの場合、Sjift-JISを指定しても
EUC-JPを指定しても読み込めたのがなぜでしょうか??

よろしくお願いします。
■No5752に返信(ろろさんの記事)

 ろろさん、こんばんは。深山と申します。

> 1.テキストファイルの読み込み方について
> VB.NETでは
>
> Dim sr As New System.IO.StreamReader(TextBox1.Text, & System.Text.Encoding.GetEncoding("euc-jp"))
>
> としました。
>
> これがVB6ではどのようになるのかわかりません。
> 読み込みたいコードはShift-JIS、Euc-JP、Unicodeです。
> .NETの場合はGetEncodeingの引数をかえたら読み込めました。

 私は試したことがない(というか、つい先程まで知らなかった・汗)のですけど、 ADO の
Stream オブジェクトを使用すれば文字コードを指定して読み込むことができるそうです。

Re^3: 【VB6】 バイナリ形式のファイル同士の結合
http://www.bcap.co.jp/hanafusa/vbbbs/wforum.cgi?no=271&reno=268&oya=265&mode=msgview

 検索したらいくつかサンプルになりそうなものが見つかりましたので、その中の一つを
紹介しておきますね。

Jis から Shift-JIS
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200401_04010054.html

 これだけだとやりたいことはできないかも知れませんけど、 MSDN を見ながら色々試して
みて下さいませ。

Stream オブジェクト
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdobjstream.asp


> ただ、,NETの場合、読み込むファイルがUnicodeの場合、Sjift-JISを指定しても
> EUC-JPを指定しても読み込めたのがなぜでしょうか??

 既定で扱われるのが UTF-8 だから、という気はするのですけど正確なところはどうなんでしょうね?

 気になったので調べてみたところ、どうやらデータを読み出すときに BOM ありの UTF-16
(ビッグエンディアン/リトルエンディアン)と UTF-8 の三種類に関しては自動判別を
しているようでした。
 その為、指定したエンコードが異なっていても正常に読み出せるようです。
# やっぱり憶測でものを言っては駄目ですね(^_^;)

DOBON.NET | プログラミング道 | プログラミング掲示板