メモ帳では正常に表示されるがWordPadでは正常に表示されないファイルをVB6で読込むには?

解決


ノンちゃん  2006-05-04 04:19:21  No: 131250

どなたか御教授をお願いします。

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」と表示させるにはどうすれば良いのでしょうか?


魔界の仮面弁士  2006-05-04 04:34:33  No: 131251

> メモ帳で開くと
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


ノンちゃん  2006-05-04 05:46:50  No: 131252

魔界の仮面弁士さん早速のご教授本当に感謝致します。
教えていただいたコードで一歩前進することが出来ましたが
ADODB.Stream というものを使ったことがないのですが、

レイアウト1
レイアウト2
レイアウト3
のようにメモ帳で表示されているファイルから1行ずつ
Test(0)=レイアウト1
Test(1)=レイアウト2
Test(2)=レイアウト3
のように取り出すことは可能でしょうか?

ご迷惑をおかけ致しますが出来ましたら御教授をお願いします。


ノンちゃん  2006-05-04 06:12:35  No: 131253

魔界の仮面弁士さん ありがとうございました。
ご教授いただいたヒントを元に解決することが出来ました。
感謝致します。


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




  


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