【Ruby3.x】CSV::tell()メソッドの使い方
tellメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
tellメソッドは、RubyのCSVクラスのインスタンスが現在、CSVファイルの読み込みまたは書き込みを行っているバイト位置(ファイルポインタのオフセット)を整数値で取得するメソッドです。このメソッドは、CSV.newなどでオープンされたCSVオブジェクトのインスタンスに対して呼び出され、ファイルの先頭からのバイト数を返します。
システムエンジニアを目指す初心者の方にとって、ファイルポインタの位置とは、CSVファイルを扱う際に「今、ファイルのどこを読んでいる(あるいは書いている)のか」を示す具体的な場所のことだと理解すると良いでしょう。例えば、長いCSVファイルを処理する際に、現在の処理の進捗状況を把握したり、何らかの理由で処理が中断された場合に、どこまで進んだかを記録しておき、後でその位置から処理を再開したりするような場面で役立ちます。
この機能は、特に大規模なCSVデータを扱うシステムにおいて重要です。処理中にシステムがダウンした場合でも、tellメソッドで取得した位置情報を利用することで、ファイルの最初から処理をやり直すのではなく、中断した地点から効率的に処理を再開できる堅牢なアプリケーションを構築することが可能になります。取得される値は物理的なバイトオフセットであるため、論理的な行数とは異なる点にご留意ください。
構文(syntax)
1require 'csv' 2 3csv_data = "項目A,項目B\n値1,値2\n値3,値4" 4csv_object = CSV.new(csv_data) 5 6puts csv_object.tell 7csv_object.readline 8puts csv_object.tell 9csv_object.readline 10puts csv_object.tell 11 12csv_object.close
引数(parameters)
*args, **keyrest, &block
- args: 任意の数の引数を配列として受け取ります。
- keyrest: 任意のキーワード引数をハッシュとして受け取ります。
- block: ブロックを渡すことができます。
戻り値(return)
Integer
CSVリーダーが現在読み込んでいる、あるいは次に読み込む行のオフセット(行番号)を整数で返します。