解析するテキスト ファイルがあります。このファイルでは、各レコードのコンテンツが可変行数にまたがっています。レコードあたりの行数は固定数ではありません。ファイルの内容は次のようになります。
ID\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
ID\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
\tcontent\tcontent
ID\tcontent\tcontent
\tcontent\tcontent
最初のタブ列にレコードがある場所でスライスしたい (ID 列は次の行で空であるため、この方法で新しいレコードを決定する必要があります)。
それを5行のチャンクに分割してからマージするための私の現在のコード:
f = File.read(file).each_line
f.each_slice(5) do | slice_to_handle |
merged_row = slice_to_handle.delete("\n").split("\t").collect(&:strip)
# Dealing with the data here..
end
最初の列に ID が設定されたらすぐにスライスするようにこれを変更する必要があります。