掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイルをバイナリで読み込むには?? (ID:116434)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは!学校からです!返信ありがとうございます!!昨日は朝まで書いていたんですが、夜更かしせず寝なさいとの文字をみて素直に寝させてもらいました^^vプログラムを書くとひとつ解決したと思ったらまたひとつ壁にぶつかるんだなって最近よく思います^^;疑問に思ったことを書かせてもらいます>< >たとえば、ロックの問題などがあります。 なるほど!!だからファイルを読んでいるときはほかのプロセスで使用していますなどとメッセージが出てしまったんですね!!納得です! >Windowsの資源(リソース)の多くは、解放処理を必要とします。 ハイ!これからは開けたら閉じるの習慣をつけます^^アドバイスありがとうございます。 >100KBという事は、102,400バイトという事なので、書き換えるなら、 > 最初の100KB分: DataFile.Read(Buffer, 0, 102400) > 次の100KB分: DataFile.Read(Buffer, 0, 102400) このコードをみて自分の勘違いに気がつきました><!!この場合は、Bufferの0番地から102400番地に読み込まれて、次の100KB分はBufferに新たに付けたされるのじゃなくて、同じ0番地から102400番地に上書きされるということですね! 慣れるまでは難しいですねっ!!がんばります! >Readメソッドで指定する位置と長さは、ファイル内の位置を示しているのではなく、受け取る配列側の位置を示している点に注意してください。 はい!では逆に言うと、ファイルの一部分だけを配列にいれるということはできないのでしょうか。。 >例えば、元データが 16バイトあったとして、 > 0バイト目: &H00 > 1バイト目: &H01 > 2バイト目: &H02 > : > : > 14バイト目: &H0E > 15バイト目: &H0F >のようになっていたとします。 大変わかりやすかったです><!魔界の仮面弁士さんは相当極めていらっしゃる方なんですね!! で、この時なんですけど、元データ3バイト目から4バイト目(&H03と&H04)をBuffer(1)とBuffer(2)にそれぞれいれるといった処理は可能なんでしょうか?調べましたがここまで複雑なのは本には載ってなかったんです>< DataFile.Read(Buffer, 0, 3) Bufferの開始位置を指定したり、データの開始位置を指定したり・・んっ、、この辺のテクニックを是非教えていただきたいです>< > Dim Buffer(8) As Byte > DataFile.Read(Buffer, 0, 3) >のようなコードを実行すれば、配列の内容は、 > Buffer(0) = &H00 > Buffer(1) = &H01 > Buffer(2) = &H02 > Buffer(3) = 変化無し > ・ > ・ >のようになります。 わかりやすすぎます><魔界の仮面弁士さんに教わった人は、なんというかハッキリ理解してるんだろうなぁと思いました。 だから、 >あう。記述ミス。。。 のところは、言葉だけでわかってましたから大丈夫です!わざわざありがとうございます!!! >.NETの世界では、文字列は「UTF-8」という形式で管理されています。文字列のエンコードには、他にもいろいろな種類がありますので、文字列をバイナリに変換する場合には、どのエンコードを使って変換するのかが、非常に重要になってくるわけです。 ここで疑問に思うことがあります!.NETの世界では「UTF-8」という形式で管理されてるとのことですが、 ファイル(sample.txt)の中身:” ft” Dim FileData as String = " ft" Dim Buffer as Byte Buffer = System.Text.Encoding.UTF8.GetBytes(FileData) として TextBox1.Text = System.BitConverter.ToString(FileData) とすると・・ 20-20-20-18-66-74と表示されるんですが、 sample.txtをDialogBoxで指定して読み込み、 TextBox1.Text = System.BitConverter.ToString(SAMPLE_data) とすると、 00-00-00-18-66-74と、今度は違う値が出力されるんです・・! エンコードが違うことを意味すると思うのですが・・ちょっとよくわからないんです>< 長々と申し訳ありませんです!!
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.