Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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リーダーが現在読み込んでいる、あるいは次に読み込む行のオフセット(行番号)を整数で返します。

関連コンテンツ

関連プログラミング言語