• 締切済み

ファイルの最後から読む方法

ファイルをオープンして読み出すと先頭から読み出しますが、 Linuxコマンドのtailのように最後から数バイト or 数行 読むということはVB.NETで可能でしょうか? 数GBのファイルを扱いますので、一旦メモリに読み込むという方法は取りたくないです。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

逆方向の走査サポートされていないとおもいます Streamクラスの Seekなどで読み込み開始の位置の変更は可能でしょうけど …

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Rubyでファイルの終わりから?行目を得る方法

    Rubyでファイルの再終行から?行目(コマンドのtail的な)の内容を取得しようとした場合、 どのような方法が一番メモリを消費せず、速度が速いのでしょうか? File.openしてループでgetsをしてまず全行取得、取得した内容から最終の?行を得る、のような方法は考えられるのですが、これだと一度ファイルの全てを処理するために、あまり効率が良い感じがしません。 他に何か良い方法は無いでしょうか。

    • ベストアンサー
    • Ruby
  • AIXでファイル参照時、特定行のみ出力する方法

    AIX環境にてファイルの中身を参照する際のコマンドとしては cat(全表示)、head(頭から○行)、tail(下から○行)、などを使用すると思いますが、 例えば『ファイルの20行目~30行目』を表示させるようなコマンドはありますでしょうか。 現時点では該当のコマンドが見つからず、上記の例を実現する場合は head -30 <ファイル名> | tail -10 (先頭30行を読み込み、その中の下10行を読み込む) などで代替しているのですが、パイプを使わず一つのコマンドで実現できれば、だいぶ楽になります。 良い方法をご存知の方がいらっしゃいましたら、ご教示頂けると幸いです。 よろしくお願い致します。

  • USBメモリの直接書き換え方法について(Linux)

    LinuxでUSBメモリを(可能ならば)特殊用途で使ってみようと思っています。 ファイルシステム等を完全に無視して、USBメモリの先頭から256/512/1Kバイト単位(任意)で、とにかくデータを読み書きしたく思っているのです。 たとえばUSBメモリの先頭から256バイトは1234 ..のインクリメントパターン、次の256バイトはすべて1、次の256バイトは9876 ・・ のパターン等のような書き込み、読み出し制御です。 Linuxのioctl関数等を使用したアプリケーションを作成して、こういうことを実現することは可能でしょうか? もし可能ならその方法をアドバイスいただけると助かります。 どなたかよろしくお願いします。 ※ ファイルシステム等を完全に破壊して、Linuxのファイルシステムとして読めなくなってもかまいません。

  • Win SFU (Services for Unix)環境下で2GB超ファイルの末尾を取得したい

    業務上、2GB超のファイルを操作する必要があり、Win2Kを使って、その下でUnixコマンドを使用できるよう、SFU (Services for Unix) を使用しています。 そのシステム上で、2GB超のファイルの末尾nバイトを取得する処理が必要になるのですが、tail -c や、dd 等を使用しても、ファイルの末尾を取得するのではなく、変な動きをしてしまいます。 何か別の方法をご存知でしたら教えて頂けますでしょうか。 <前提> 1. ファイルの大きさは、都度変わりうる(min: 0, max: 数十GB) 2. NTFS上に、2GB超のファイルを既に書けていて、wc などの、単純にファイルを先頭から操作するコマンドは機能している。 3. SFUのkshを使用している。(他処理と連携したシステムの一部として作りたいので、パイプ・リダイレクト等で繋いで手操作はゼロにしたい) <既に試してダメだった方法> tail -c n ... 先頭からファイルを参照しているような動きをする tail +c ファイルサイズ-n ... 'Could not seek to byte -2139091255n file 'とエラーになる dd ... seek=n ... tail + と同様に、seekが失敗したとのエラー表示をし、エラーになる Perlでseekシステムコール システムコールが失敗する。 よろしくお願いします。

  • テキストファイルを後ろから読む方法(VB2008)

    やりたいことを先に書くと、最終的には Linuxのtailに毛が生えたようなアプリをつくりたいと思っています。 開発環境はVB2008 Express Editionです。 で、まずはテキストファイルを後方から読む方法でつまっています。 指定した行数を後方から読むようにしたいと思っています。 最初は全行をいったん読み込んで配列に入れて処理という 書き方をしたのですが、大きなファイルの際にメモリを大量に消費し、 処理速度も遅くなったのでボツになりました。 今はとりあえず、バイナリで後ろから読み込んで改行文字列を 自分で見つけて処理をするという原始的な方法を思い浮かべていますが、 今っぽくないプログラミングであるような気がしています。 このようなことを実現する便利なクラス・機能やエレガントな記述等を 教えていただきたいと思っています。 よろしくお願いします。

  • 巨大ファイルの作成方法

    Linuxなどで、1GB超程度のファイルを作成する方法を教えてください。 何かのコマンドで可能かもしれないという話を聞いたのですが。そのようなコマンドや、方法があればご教授お願いします。 使用目的は、ネットワークやファイルサーバーの性能のチェックです。なければ、WindowsなどのPhotoshopなどを使用する方法でもかまいません。 以上、よろしくお願いします。

  • 大きいサイズのファイルの扱い方 UNIX AIX

    お世話になります。 UNIX(AIX)環境での大きいサイズのファイルの扱いについての質問です。 viで大きいサイズ(500MBくらい)のテキストファイルを 開きたいのですが、マシンのメモリ不足で開くことができません。 このような大きいサイズのファイルを 大雑把にわけたい(3等分とか、5等分とか)のですが どのような方法があるか?教えてください。 (マシンの性能を上げる!という解答以外でおねがいします。) wcコマンドで全体の行数を調べようとしても、エラーが帰ってきてしまって調べられません。 headコマンドで頭から100行出力しようとしてもエラーが帰ってきます。 tailコマンドを使えば、ファイルの終端から、サイズを決めて出力することは、できます。 tailコマンド使用例 tail -k 50000 AAA.txt > BBB.txt

  • Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。

    Excelのファイル{(75行*1列の1セット)*33セット分}データをVBで扱う方法を教えてください。 ExcelのデータをVBに読み込んで、それを並び替えするプログラムを作ろうとしています。 なのですが、ExcelのデータをVBに読み込む方法がわかりません。 ネットで調べたらopen,close,get・・とあるのですが、いまいちわかりません。 どなたか教えてください。

  • ファイルの先頭を削るコマンド

    ファイルの先頭の指定したバイトだけ削って、新たにファイルを生成したいのですが、そのようなコマンドはありますか?

  • VBのバージョンの調べ方&VB5からVB.net2008にコンバージョンする方法

    VBのバージョンを調べたいと思っているのですが、どのファイルを開けば確認出来るのでしょうか? こちらにはVB.net2008しかないので、テキストエディタでVBのソースファイルを開いて確認するしかないのかなぁと思っています。 拡張子がfrmのファイルを開いて見た所、1行目に「VERSION 5.00」と書かれていたので、VB5だと勝手に思っています。 それと、VB5からVB.net2008に変換しようと思っているのですが、VB6からVB.netへの変換はVBUpgrade.Exeというコマンドを使えば変換出来るのは分かったのですが、 VB5から変換する場合は、まずVB5からVB6に変換する必要があるという事がネット上に書いてありました。 VB6でVB5プロジェクトを開いて保存すれば、変換出来るみたいなのですが、VB.net2008しか所有していないので、VB5からVB6に変換する方法が分かりませんでした。 他に方法はありますでしょうか? よろしくお願いします。

このQ&Aのポイント
  • 新しいプリンターを購入して古いPX-7V関連のソフトウェアをアンインストールする方法について教えてください。
  • PX-7V関連のソフトウェアをアンインストールする手順を教えてください。
  • EPSONのPX-7Vに関連するソフトウェアをアンインストールする方法を教えてください。
回答を見る