どなたか御教授をお願いします。
VB6にてファイル内のデータを読込みたいのですがメモ帳で開くと「レイアウト1」と表示されるのですが、
WordPadや下記コードを実行すると「・夲スイ・ア・ウ・・」と表示されてしまいます。
Open Text1.Text For Input As #1
Input #1, Test(0)
Close #1
このファイルをBinary editiorで表示してみたところ「ef be 9a ef bd b2 ef bd b1 ef bd b3 ef be 84 31」
でした。このファイルをメモ帳で表示した時のようにVBで読込み「レイアウト1」と表示させるにはどうすれば良いのでしょうか?
> メモ帳で開くと
Windows 98などのメモ帳だと、表示できないはずです。
今回、元データは『UTF-8』というUnicodeエンコーディングになっています。
Input #ステートメントの読込では、Shift_JIS しか扱えないため、
そのままでは化けてしまいます。
> どうすれば良いのでしょうか?
ADODB.Stream の助けを借りるのが、もっとも手軽かと。
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.LoadFromFile Text1.Text
Test(0) = .ReadText()
.Close
End With
魔界の仮面弁士さん早速のご教授本当に感謝致します。
教えていただいたコードで一歩前進することが出来ましたが
ADODB.Stream というものを使ったことがないのですが、
レイアウト1
レイアウト2
レイアウト3
のようにメモ帳で表示されているファイルから1行ずつ
Test(0)=レイアウト1
Test(1)=レイアウト2
Test(2)=レイアウト3
のように取り出すことは可能でしょうか?
ご迷惑をおかけ致しますが出来ましたら御教授をお願いします。
魔界の仮面弁士さん ありがとうございました。
ご教授いただいたヒントを元に解決することが出来ました。
感謝致します。
ツイート | ![]() |