dポイントプレゼントキャンペーン実施中!

こんばんは。

Rubyでファイルの特定行を抽出するプログラムを作っているのですが、
flagを立てて特定の場所から特定の場所までを指定する方法をとりたいと思っています。

ある程度までは書いたのですが、そこからどうすれば良いのかが分かりません。

なにとぞ御教授、御添削の程お願い致します。

data = File.open(fpath) do |f|
6
7 f.each_line do |line|
8
9 line.gsub!(/前事業年度特定投資株式/,"前事業年度")
10 line.gsub!(/当事業年度特定投資株式/,"当事業年度")
11
12
13 line.gsub!(/保有目的が純投資目的である/,"EOF")
14 line.gsub!(/保有目的が純投資目的の/,"EOF")
15
16 # next unless line =~ /保有目的が純投資目的以外/ .. line =~ /EOF/
17
18
19 if $flag == 1
20 text << line.chomp unless line =~ /^\s+$/
21
22 if line =~ /保有/
23 $flag = 1
24 else if line =~ /EOF/
25 $flag = 0

A 回答 (1件)

プログラムが断片的でよくわかりません。



「保有」という文字が含まれる行から、「EOF」という文字が含まれる行の前の行まで を取り出すとすると、

text = ""
flag = nil
IO.foreach(fpath) do |line|

case line
when /保有/
flag = true
when /EOF/
flag = false
end

text << line if flag
end

puts text
    • good
    • 0
この回答へのお礼

拙い質問にご丁寧に回答していただきありがとうございます。精進します。

お礼日時:2014/11/04 11:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!