【Ruby3.x】CSV::lineno()メソッドの使い方
linenoメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
linenoメソッドは、RubyのCSVクラスにおいて、現在処理中のCSVデータの物理的な行番号を取得するメソッドです。このメソッドを呼び出すと、CSVオブジェクトがこれまで読み込んだ物理的な行の総数が返されます。CSVデータの読み込みを開始した時点では、その値は0であり、CSVオブジェクトが新しい行を読み込むたびに、この行番号は1ずつ増加します。
この行番号は、CSVファイル内のすべての行(データ行、コメント行、空行なども含む)を対象としてカウントされるため、アプリケーションで扱う論理的なデータ行番号とは異なる場合があります。例えば、ファイルの先頭にコメント行やヘッダ行が存在する場合、linenoメソッドはそれらの行もカウントに含めます。
linenoメソッドは、CSVファイルの処理中に現在どの位置を読み込んでいるかを確認したい場合に特に役立ちます。特定の行でエラーが発生した場合に、エラーが発生した物理行番号を特定するデバッグ目的や、長時間にわたるCSV処理の進捗状況をユーザーに提示する際などに活用できるでしょう。
構文(syntax)
1require 'csv' 2require 'stringio' 3 4csv_data = "header1,header2\nvalue1,value2\n" 5csv_io = StringIO.new(csv_data) 6csv_object = CSV.new(csv_io) 7csv_object.gets # 1行目を読み込み 8csv_object.lineno # 現在の行番号を取得
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
CSVファイルから読み込んだ行の番号を整数で返します。これは、現在処理中の行を追跡するのに役立ちます。