[#41251] mswin32(もしくはActiveScriptRuby)でRuby/Tkを使うには? — "conundrum /" <conundrum@...>

conundrumです。

12 messages 2005/10/11

[#41284] 条件に合う見出しの内容だけを抽出 — isawa_kz <isawa_kz@...>

井沢と申します。

32 messages 2005/10/14
[#41299] Re: 条件に合う見出しの内容だけを抽出 — Kousuke Honda <kousuke4@...> 2005/10/14

本田です。はじめましてです。

[#41300] Re: 条件に合う見出しの内容だけを抽出 — isawa_kz <isawa_kz@...> 2005/10/14

井沢です

[#41301] Re: 条件に合う見出しの内容だけを抽出 — しん <dezawa@...> 2005/10/14

出沢です

[#41340] Date へのメソッド追加要望 — MATSUNO Tokuhiro <tokuhirom@...>

tokuhirom@Inamode6:897 です。

19 messages 2005/10/22

[#41371] 北九州市の rubyist へ — Akimichi Tatsukawa <akimichi_tatsukawa@...>

こんにちは。立川察理と申します。

13 messages 2005/10/25

[#41400] 全角スペースを区切りとした文字列分解で — 中村 英夫 <cxn03651@...>

中村と申します。

10 messages 2005/10/27

[#41416] Rubyでこういうの作れますか?(中央銀行編) — Omoti <omoti@...24.net>

Rubyで中央銀行システムを作りたいんですが、できますか?

14 messages 2005/10/29
[#41418] Re: Ruby でこういうの作れますか?(中央銀行編) — Sako Hiroshi <sakoh@...2.so-net.ne.jp> 2005/10/29

[#41420] Re: Ruby でこういうの作れますか?(中央銀行編) — Omoti <omoti@...24.net> 2005/10/29

そんな大規模じゃないですよ!

[#41425] "Programming Ruby 2nd edtion"の邦訳について — "higashi ryota" <ryochin_hgs@...>

始めまして。既出だったらすいません、過去ログで検索したのですが見つけられませ

10 messages 2005/10/30
[#41428] Re: "Programming Ruby 2nd edtion"の邦訳について — Yukihiro Matsumoto <matz@...> 2005/10/30

まつもと ゆきひろです

[ruby-list:41284] 条件に合う見出しの内容だけを抽出

From: isawa_kz <isawa_kz@...>
Date: 2005-10-14 08:59:12 UTC
List: ruby-list #41284
井沢と申します。
以下のファイル(data.xt)のように、見出し(Title)と内容(content)を持つ
ファイルから、条件に合う見出しの内容だけを抽出しようと考えています。

--- data.txt ---
Title-1
    Title-A
        content1
    Title-B
        content2
        content3
Title-2
    Title-A
        content4
        content5
    Title-B
        content6
----------------

data.txt から「Title-1」の「Title-B」内容:

content2
content3

だけを抽出しようとして、以下のサンプルを作成してみたのですが、
ネストが深くなるほどフラグや if文を増やさなくてはならないため、
コードが見づらくなることを懸念しています。
(実際にはネストはもっと深く、抽出対象の見出しも沢山あります)

フラグや if文を減らし、すっきりしたコードにするにはどのような
方法が考えられるでしょうか。


--- サンプル ---
flag1 = flag2 = 0
File.readlines("data.txt").each {|line|

  # 「Title-1」処理
  if line =~ /Title-2/; flag1=0; end    # 終了フラグ設定
  if line =~ /Title-1/; flag1=1; end    # 開始フラグ設定
  if flag1 == 1                         # 処理

    # 「Title1-2」処理
    if line =~ /Title-2/; flag2=0; end  # 終了フラグ設定
    if line =~ /Title-B/                # 開始フラグ設定
      flag2=1
      next
    end
    if flag2 == 1                       # 処理
      puts line.strip
    end

  end
}
----------------

--- 結果 ---
content2
content3
------------


--------------------------------------
Know more about Breast Cancer
http://pr.mail.yahoo.co.jp/pinkribbon/


In This Thread

Prev Next