tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルバイナリモードについて
記事No4248
投稿日: 2006/09/13(Wed) 11:21
投稿者ライス
jpg等の画像ファイルをFileOpenで開いた後の、バイナリモードの扱い方がわかりません。

Dim aaa As Integer = 100
Dim bbb As String = "C:\test.jpg"
Dim ccc As Byte

FileOpen(aaa, bbb, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
'
FileClose(aaa)

こんな感じで「test.jpg」をバイナリで ccc の変数に格納したいのですが
どうすればいいでしょうか?

[ツリー表示へ]
タイトルRe: バイナリモードについて
記事No4249
投稿日: 2006/09/13(Wed) 11:39
投稿者魔界の仮面弁士
> Dim ccc As Byte
バイナリなら、Dimb ccc() As Byte なのでは。

> こんな感じで「test.jpg」をバイナリで ccc の変数に格納したいのですが
2005 であれば、こんな感じで。

Dim bin() As Byte = My.Computer.FileSystem.ReadAllBytes("C:\test.jpg")

[ツリー表示へ]
タイトルRe^2: バイナリモードについて
記事No4250
投稿日: 2006/09/13(Wed) 13:13
投稿者ライス
魔界の仮面弁士様、返信ありがとうございます。
環境を書くのを忘れていまして申し訳ないです・・・
VB.NET2003、Windows2000での開発です。

「My.Computer.FileSystem」は2005の書式のようなので
Dim bin() As Byte = System.IO.File.ReadAllFile("C:\test.jpg")
現在、↑のようにしてみましたが
「'ReadAllFile'は'System.IO.File'のメンバではありません」
とエラーが出ました。
調べてみましたところ、ReadAllFile自体はどのサイトでもSystem.IO.Fileのメンバであるように書かれてますが
何が間違っているのでしょうか?

[ツリー表示へ]
タイトルRe^3: バイナリモードについて
記事No4251
投稿日: 2006/09/13(Wed) 18:58
投稿者Hongliang
> 調べてみましたところ、ReadAllFile自体はどのサイトでもSystem.IO.Fileのメンバであるように書かれてますが

色々なサイトを参考にするのは良いですが、基本的にはまず MSDN を見ましょう。そのメンバがサポートしている .NET Framework のバージョンも書かれていますから。

Byte() に読み出すのなら、FileStream を作成して Read メソッドで読み出すのが .NET 流です。
ここでも MSDN を見ましょう。大抵はサンプルコードが載っていますから。
ついでに一つのクラスを調べる時は目的のメソッドだけじゃなくてメンバ一覧に一通り目を通しておきましょう。思わぬ収穫があったりします。

[ツリー表示へ]
タイトルRe^4: バイナリモードについて
記事No4253
投稿日: 2006/09/14(Thu) 13:09
投稿者ライス
おっしゃる通りFileStreamを使用することで無事解決しました。
MSDNにも色々な情報が載っており勉強になりました。
アドバイスありがとうございました。

[ツリー表示へ]