C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.84479 の関連記事表示

<< 0 >>
■84479  ファイルから指定した位置のデータをバイト配列に読み込む
□投稿者/ 猫 -(2017/07/06(Thu) 22:22:38)

    分類:[.NET 全般] 

    https://dobon.net/vb/dotnet/file/filestream.html


    'ファイルを開く
    Dim fs As New System.IO.FileStream("C:\test.txt", _
    System.IO.FileMode.Open, _
    System.IO.FileAccess.Read)
    'ファイルを読み込むバイト型配列を作成する
    Dim bs(fs.Length - 1) As Byte
    'ファイルの内容をすべて読み込む
    fs.Read(bs, 0, bs.Length)
    '閉じる
    fs.Close()

    というコードでファイルの全データをバイト配列に読み込むことができます。

    それで、
    ファイルの100byte〜900byte
    など指定した部分だけをバイト配列に読み込みたいのですが
    どのようにすれば良いですか?


親記事 /過去ログ144より / 関連記事表示
削除チェック/

■84480  Re[1]: ファイルから指定した位置のデータをバイト配列に読み込む
□投稿者/ Azulean -(2017/07/06(Thu) 23:04:29)
    No84479 (猫 さん) に返信
    > それで、
    > ファイルの100byte〜900byte
    > など指定した部分だけをバイト配列に読み込みたいのですが
    > どのようにすれば良いですか?

    fs.Position = 100 とすることで 100 バイト目に移動と言うことができます。
    あとは、読み込みたいバイト数に応じて bs のサイズを変えればよいだけだと思います。
記事No.84479 のレス /過去ログ144より / 関連記事表示
削除チェック/

■84481  Re[1]: ファイルから指定した位置のデータをバイト配列に読み込む
□投稿者/ shu -(2017/07/07(Fri) 10:25:52)
    No84479 (猫 さん) に返信

    >
    > というコードでファイルの全データをバイト配列に読み込むことができます。
    『できます。』→『できました。』とか『できています。』となるよう質問する前に確認を
    先にした方がよいです。


    >
    > それで、
    > ファイルの100byte〜900byte
    > など指定した部分だけをバイト配列に読み込みたいのですが
    > どのようにすれば良いですか?
    >
    No84480 のAzuleanさんの回答で十分だと思いますが、
    『それで』とあるのでファイルを読み直すということを意味して
    いると仮定して別の案を提示します。

    読込処理が終わった後に
    Dim bs2 = bs.Skip(100-1).Take(900-100+1).ToArray()
    とすれば部分配列を作成出来ます。一度ファイルの内容を
    読み終わっているので何度も位置を変えアクセスするなら
    bsの寿命が延びるようなスコープに変数を定義するとよいと思います。


記事No.84479 のレス /過去ログ144より / 関連記事表示
削除チェック/

■84482  Re[1]: ファイルから指定した位置のデータをバイト配列に読み込む
□投稿者/ WebSurfer -(2017/07/07(Fri) 10:30:28)
    No84479 (猫 さん) に返信

    > ファイルの100byte〜900byte
    > など指定した部分だけをバイト配列に読み込みたいのですが
    > どのようにすれば良いですか?

    その問いの直接の回答は Azlean さんのレスの通りと思いますが、それで質問者さんの最終的な目的は果たせるのでしょうか?

    test.txt ということはテキストファイルのようですが、もしそのテキストファイルの何文字目から何文字目までを切り取るというようなことが最終的な目的だとすると、「ファイルの100byte〜900byte」という切り取り方では難しいと思われますが。

    そういう話でなないということでしたら失礼しました。上の私のレスはスルーしてください。
記事No.84479 のレス /過去ログ144より / 関連記事表示
削除チェック/

■84500  Re[2]: ファイルから指定した位置のデータをバイト配列に読み込む
□投稿者/ 猫 -(2017/07/07(Fri) 23:43:15)
    ご回答ありがとうございます。

記事No.84479 のレス / END /過去ログ144より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -