Ruby

全875件中101~120件表示
  • Firefoxの"ページのソースを表示"と"要素を

    Firefoxの"ページのソースを表示"と"要素を調査" Webからデータを自動で取得するRubyのプログラムを作りたいのですが、 データが単純にHTMLだけで表示されていないようで、 Firefoxの"ページのソースを表示”では私が欲しいデータが表示されません。 ですが、私が欲しいデータが表示されている部分を選んだ上で、 右クリックして"要素を調査"を選ぶと、私が欲しいデータが表示されます。 (画像を添付。この例では湿度59%) http://www.wunderground.com/q/zmw:00000.1.47671?MR=1 この欲しいデータをRubyで取得するにはどうすれば良いか、 アドバイス頂けないでしょうか。 よろしくおねがいします。 以上

  • Ruby/DBI で.modeを使う方法

    sqlコマンドで.mode htmlを使ってからselectすると テーブルで返ってくるのでそのままrubyでも出力できるとコードが短くなって楽だと思ったんですが、うまくできません。 どうかやり方をお教えください。 rubyを始めたばかりでexecuteの実行結果がどのような構造になっているかもよくわかりません。 こちらの方もお教えいただけると幸いです。 下記のような使い方をしたいです。 <%# -*- coding:shift_jis -*- %> <% require 'rubygems' # RubyGems のインストール %> <% require 'dbi' #DBIの利用 %> <% dbh=DBI.connect('DBI:SQLite3:fruits.db') %> <% #HTML形式で受け取る %> <% #dbh.do(".mode html;") %> <%# execute select statement%> <% sth=dbh.execute("select * from fruits;") %> <html> <head> <meta http-equiv="Context-Type" content="text/html;charset Shift_JIS"/> <title>フルーツ管理</title> </head> <body> <% #テーブルで出力 %> <table> <%#=sth %> </table> </body> </html> <%# relese results %> <% sth.finish %> <%# disconnect database %> <% dbh.disconnect %>

  • rubyでrequireできない

    gemを使ってmechanizeをインストール完了までいったのですが、ruby実行時にrequire 'mechanize'で落ちてしまいます。 --sample.rb-- require 'rubygems' require 'mechanize' #require 'mechanize-2.7.3' p 'OK' 結果 /home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mechanize (LoadError) from /home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require' from sample.rb:2:in `<main>' 現在のgem listでmechanizeは出てきましたので、gemのインストールは上手くいってます。 mechanize (2.7.3) ただLOAD_PATHをみてみると、 ["/home/USERNAME/.rbenv/rbenv.d/exec/gem-rehash", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/site_ruby/2.1.0", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/site_ruby/2.1.0/x86_64-linux", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/site_ruby", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/vendor_ruby/2.1.0", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/vendor_ruby/2.1.0/x86_64-linux", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/vendor_ruby", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/2.1.0", "/home/USERNAME/.rbenv/versions/2.1.5/lib/ruby/2.1.0/x86_64-linux"] でgemによってインストールされたlibが /var/lib/gems/1.9.1/gems/mechanize-2.7.3/lib/ LOAD_PATHにないことが原因かもしれないですが、対処法が分からず困ってます。 どなたかご回答願いします。 尚rubyのバージョンは ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]

  • ruby 正規表現

    こんばんは。 Rubyでの正規表現での質問なのですが、 例えば"hoge"という文字が含まれる行全体にマッチさせるような正規表現は存在するのでしょうか? また存在する場合はどのように記述すれば良いのでしょうか。 単純な質問で申し訳ありませんが、よろしくお願いいたします。

  • RubyでバイナリデータをIOストリームにする方法

    Rubyで、バイナリデータをIOストリームに変換する方法を探しています。 Railsで、データベースに格納された アップロード済のPDFファイル(バイナリデータ)を、 PDF::readで読み込んで処理したいのですが、 PDF::readは、ファイルパスかIOストリームしか受け付けてくれないようなのです。 よろしくお願いします。

  • Ruby バブルソート

    バブルソートのプログラムでわからないところがあるため、 質問させていただきます。 Rubyは1.9.3を使用しています。 <プログラム> --------------------------------------------------- def bsort(data)   while true     # swapped変数は数値の入れ替えを記憶     swapped = false     for i in 0..data.size-2       if data[i] > data[i+1]         temp = data[i]         data[i] = data[i+1]         data[i+1] = temp         swapped = true       end     end     return if !swapped   end end data = [10, 9, 8, 7, 6] bsort(data) puts "ソート結果#{data}" --------------------------------------------------- return if !swapped のところで、 なぜwhileのループから抜けられるのかがよくわかりません。 return if swapped == false と書き換えて実行しても同じ結果が得られたのですが、 数値の入れ替えがなければ swapped = false であるため、 !swappedはtrueとはならないのでしょうか。

    • 締切済み
    • jet888
    • Ruby
    • 回答数8
  • DXRubyのインストールの仕方を教えてください

    DXRubyのインストールの仕方が分かりません。 Rubyは2.0.0を使っています。 64bitです。 参考になるサイトなど教えていただけるとありがたいです。

    • ベストアンサー
    • ar_nn
    • Ruby
    • 回答数2
  • ローカル変数の使いかた

    非常に初歩的なのですがrubyにおいてインスタンス変数、ローカル変数とクラス変数の使い分けがわかりません。 あるクラス内においてクラスから作られたすべてのオブジェクトに適用したい値はクラス変数に、インスタンスごとに違うのならインスタンス変数にするのはわかるのですが、クラス内でローカル変数はなぜ使うのでしょうか?受け取った引数もオブジェクトならインスタンス変数に、クラスならクラス変数に原理的には属すと思うのです。 あるオブジェクトがあるメゾッドを実行した時にそのオブジェクト全体に適用したくない変数をローカル変数にすると考えました。 その場合、なぜ class A a= 1 end のようにメゾッドに属さないクラス内にあるローカル変数があるのでしょうか?

  • Ruby 暗号化したファイルの復号について

    Rubyでファイルを暗号化し、それを復号したいのですがうまくいかないため、 質問させていただきます。 Ruby 1.9.3を使用しています。 ・ファイルの暗号化 encrypt.rb ------------------------------------------------- # encoding: cp932 require 'openssl' def encrypt(file, pass)   enc = OpenSSL::Cipher::AES256.new('CBC')   enc.encrypt   enc.pkcs5_keyivgen(pass)   File.open(file, 'rb') do |fin|     File.open("#{file}.sec", 'wb') do |fout|       while buff = fin.read(8000)         fout.write(enc.update(buff))       end       fout.write(enc.final)     end   end   enc.reset end if $*.length > 0   print 'password: '   pass = $stdin.gets.chomp   $*.each do |arg|     begin       encrypt(arg, pass)       puts "#{arg}を暗号化したファイル#{arg}.secを作りました。"     rescue       puts "#{arg}の暗号化に失敗しました。"     end   end   0.upto(pass.length - 1) do |i|     pass[i] = '\xff'   end end ------------------------------------------------- ・ファイルの復号 decrypt.rb ------------------------------------------------- # encoding: cp932 def decrypt(file, pass)   dec = OpenSSL::Cipher::AES256.new('CBC')   dec.decrypt   dec.pkcs5_keyivgen(pass)   File.open(file, 'rb') do |fin|     File.open("#{file}.plain", 'wb') do |fout|       while buff = fin.read(512)         fout.write(dec.update(buff))       end       fout.write(dec.final)     end   end   dec.reset end if $*.length > 0   print 'password: '   pass = $stdin.gets.chomp   $*.each do |arg|     begin       decrypt(arg, pass)       puts "#{arg}を復号したファイル#{arg}.plainを作りました。"     rescue       puts "#{arg}の復号に失敗しました。"     end   end   0.upto(pass.length - 1) do |i|     pass[i] = '\xff'   end end ------------------------------------------------- コマンドプロンプトでencrypt.rb自身を暗号化し、encrypt.rb.secの作成はできるのですが、 decrypt.rbを実行してパスワードを入力しても復号ができません。 どのようにすれば復号できるのか教えていただけますでしょうか。

    • ベストアンサー
    • jet888
    • Ruby
    • 回答数2
  • Ruby Net::HTTP 自作DL関数 初心者

    Ruby初心者です。 先日ダウンロード関数を作ったのですが、(下記) この関数に、既存の機能を外さず、リフェラーと、ユーザーエージェントを設定できるようにしたいのですが、 どこをどう変更したらよいかわかりません。 わかる方、ご指導ください。 初心者的コードですがどうかご勘弁ください。 =========== # インターネットからファイルをダウンロードする ※badNoFnameFlag => デフォルトのファイル名が指定されていない場合は、失敗とみなす def try_download(uri,num_trial = 3,badNoFnameFlag = false,minimum_content_length = 0) retHash = {} num_trial.times{ res = Net::HTTP.get_response(URI.parse(uri)) # , 'User-Agent' => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1" & リフェラー を設定したい if res.class.name != "Net::HTTPOK" || res.code != "200" || res.message != "OK" next else fname = cd_file(res['content-disposition']) if badNoFnameFlag if !fname next end end if !defined? res['content-length'] next end if is_numeric(res['content-length']) res['content-length'] = numeric_or_zero(res['content-length']) else next end if Float(res['content-length']) <= minimum_content_length next end if !fname retHash['name'] = basename(uri) else retHash['name'] = fname end retHash['body'] = res.body break end } return retHash end ===========

    • ベストアンサー
    • mitsuo300
    • Ruby
    • 回答数1
  • Rubyの正規表現、文字の追加

    こんばんは。 文章の先頭に指定した文字列を指定した箇所(文頭)のみに追加したいと思っているのですが、 どうもうまくいかないため質問させていただきました。 (1)全角英数字を正規表現で取得できていない (2)unless文の後の条件の複数指定が機能せずエラーになる (3)sub!で置換する以外に文字の追加方法はないか (4)unlessで条件指定しない場合、すべての行の頭に「当事業年度」という文字がついてしまう 上記4つがうまくいっていない要因です。 (3)に関してはinsertを他の手段として考えています。 以下プログラムです。 text.each_line do |t| 56 57 case t 58 when/前事業年度\t銘   柄/ 59 flag = true 60 when/前事業年度\t当事業年度/ 61 flag = false if flag == true 62 end 63 64 t.sub!(/^(\p{Katakana}|[一-龠々]|\w|(株)|\p{Hiragana}|[:upper:]{0,20}[1-9])/) {|d| "前事業年度\t#{$1}"} unless flag == false && /当事業年度/ 65 t.sub!(/^(\p{Katakana}|[一-龠々]|\w|(株)|\p{Hiragana}|[:upper:]{0,20}[1-9])/) {|d| "当事業年度\t#{$1}"} unless flag == false && /前事業年度/ 変換したい文章は以下のものです。 前事業年度 銘   柄 株式数(株) 貸借対照表計上額(百万円) 保有目的 株式会社日本触媒 6,338,000株 7,726,000,000円 当社グループの主要原料供給元であり、取引関係強化の一環として保有している。 ユニ・チャーム株式会社 278,100株 1,533,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 栗田工業株式会社 572,600株 1,282,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 JXホールディングス株式会社 2,477,050株 1,231,000,000円 当社グループ製品の販売先および主要原料供給元である企業の持株会社であり、取引関係強化の一環として保有している。 KPXChemical 158,621株 967,000,000円 KPXChemical設立時に出資しており、協力関係維持のため保有している。 株式会社ブリヂストン 194,000株 710,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 関西ペイント株式会社 214,225株 315,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有(取引先持株会による定期買付)している。 当事業年度 銘   柄 株式数(株) 貸借対照表計上額(百万円) 保有目的 KPXHoldings 58,990株 284,000,000円 上記KPXChemicalの株式を40%保有する大株主であり、協力関係強化のため保有している。 大日精化工業株式会社 524,000株 250,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 高圧ガス工業株式会社 424,000株 241,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 サカタインクス株式会社 202,000株 196,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。地元企業との関係強化のため保有している。 株式会社松風 138,000株 120,000,000円 地元企業との関係強化のため保有している。 コニシ株式会社 50,000株 91,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 稲畑産業株式会社 66,000株 69,000,000円 当社グループ製品の販売および原料購入における代理店であり、取引関係強化の一環として保有している。 日本特殊塗料株式会社 112,000株 68,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 電気化学工業株式会社 142,000株 50,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 株式会社三菱ケミカルホールディングス 104,500株 44,000,000円 当社グループ製品の販売先および主要原料供給元である企業の持株会社であり、取引関係強化の一環として保有している。 長瀬産業株式会社 31,000株 39,000,000円 当社グループ製品の販売および原料購入における代理店であり、取引関係強化の一環として保有している。 横浜ゴム株式会社 36,000株 34,000,000円 当社グループ製品の販売先であり、取引関係強化の一環として保有している。 前事業年度から下の7行の文頭に「前事業年度」という文字を追加し、 当事業年度から下の行の文頭に「当事業年度」という文字を追加することが目標です。 どうかご教授のほどよろしくお願いいたします。

  • Ruby RSSの文字置換について

    RubyでRSSリーダーを作成しているのですが、 読み込んだRSSのエンコード(utf-8)とプログラムのエンコード(cp932)が異なるため、 エラーが発生しました。 <プログラム> ------------------------------------------------------- # encoding: cp932 require 'open-uri' require 'rss' xml = nil open("http://codezine.jp/rss/new/20/index.xml") { |http|    xml = http.read } rss = RSS::Parser.parse(xml.force_encoding("utf-8")) puts "#{rss.channel.title.encode('cp932', 'utf-8')}"\ + "#{rss.channel.pubDate.strftime("%Y/%m/%d %X")}" rss.items.each do |item|    puts '--------------------------'    puts item.title.encode('cp932', 'utf-8')    puts item.pubDate.strftime("%Y/%m/%d %X")    puts item.description.encode('cp932', 'utf-8') end ------------------------------------------------------ <エラーメッセージ> ------------------------------------------------------ rss_r.rb:18:in `encode': U+2013 from UTF-8 to Windows-31J (Encoding::UndefinedConversionError) ------------------------------------------------------ 以下のサイトを参考にして文字を置換しようと思ったのですが、 http://qiita.com/yugo-yamamoto/items/0c12488447cb8c2fc018 rssはStringクラスではないため、trメソッドが使えません。 どのようにすれば文字を置換できるのか教えていただけますでしょうか。

    • ベストアンサー
    • jet888
    • Ruby
    • 回答数2
  • ruby テキストファイル書き出しでの文字化け

    ruby&mac&文字の扱い 初心者です。 mac os 10.6.8 HTMLの情報を読み込みテキストファイルに書き出したいのですが、 ターミナル上、putsではきちんと日本語で表示されるのですが、書き出したあとの txtファイルを開くと文字化けしています。 File.open("test.txt","w") do |file| @s_info.each do |data| puts data[:m_sec] file.puts data[:m_sec] end end よろしくお願いします。

    • ベストアンサー
    • kmufo
    • Ruby
    • 回答数2
  • Ruby 正規表現と置換

    こんにちは。 Rubyで正規表現で見つかった箇所の文字列を置換するプログラムを書いているのですが、 一部うまく作動せず、その原因が分からないため質問させていただきました。 以下プログラムの置換の部分になります。 49 case text 50 when /株式数(株)\t貸借対照表計上額(千円)|株式数(株)\t貸借対照表計上額(千円)/ 51 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1}株\t#{$3},000円\t"} 52 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 53 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t(\d{1})/){|s| "#{$1}株\t#{$3}円\t"} 54 when/百万円/ 55 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)/) {|s| "#{$1}株\t#{$3},000,000円\t"} 56 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 57 when /株式数(株)\t貸借対照表計上額(百万円)/ 58 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)/) {|s| "#{$1}株\t#{$3},000,000円\t"} 59 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 60 when /株式数(株)\t貸借対照表計上額(百万円)/ 61 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1}株\t#{$3},000,000円\t"} 62 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 63 when /株式数(1000株)\t貸借対照表計上額(百万円)/ 64 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},000株\t#{$3},000,000円\t"} 65 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 66 when /株式数(1000株)\t貸借対照表計上額(百万円)/ 67 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},000株\t#{$3},000,000円\t"} 68 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 69 when/株式数(1000株)\t貸借対照表計上額(百万円)/ 70 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},000株\t#{$3},000,000円\t"} 71 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 72 when/株式数(1000株)\t貸借対照表計上額(百万円)/ 73 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},000株\t#{$3},000,000円\t"} 74 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 75 when/株式数(株) 貸借対照表計上額(百万円)/ 76 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},株\t#{$3},000,000円\t"} 77 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 78 when/株式数(株) 貸借対照表計上額(百万円)/ 79 text.gsub!(/([1-9]\d{0,2}(,\d{3})*)\t([1-9]\d{0,2}(,\d{3})*)\t/) {|s| "#{$1},株\t#{$3},000,000円\t"} 80 text.gsub!(/([1-9]\d{0,3})\t(\d{1})/){|s| "#{$1}株\t#{$2}円\t"} 81 end 以下は今のプログラムで出てくる結果です。 1つ目の数字の後ろに「株」、2つ目の数字の後ろに「,000円」がついています。 ハ保有目的が純投資目的である投資株式の前事業年度及び当事業年度における貸借対照表計上額の合計額並びに当事業年度における受取配当金、売却損益及び評価損益の合計額(a)保有目的が純投資目的以外の目的である投資株式銘柄数58銘柄貸借対照表計上額の合計額6,915百万円(b)保有目的が純投資目的以外の目的である投資株式の保有区分、銘柄、株式数、貸借対照表計上額および保有目的(前事業年度)特定投資株式 前事業年度 銘   柄 株式数(株) 貸借対照表計上額(百万円) 保有目的 (株)髙島屋 1,594,657株 1,527,000円 事業上の関係の維持・強化 トヨタ自動車(株) 220,804株 1,327,000円 事業上の関係の維持・強化 (株)みずほフィナンシャルグループ 3,295,570株 642,000円 取引銀行との関係の維持・強化 ヒューリック(株) 638,400株 552,000円 事業上の関係の維持・強化 住友商事(株) 229,198株 294,000円 事業上の関係の維持・強化 (株)三菱UFJフィナンシャル・グループ 457,750株 272,000円 取引銀行との関係の維持・強化 阪急阪神ホールディングス(株) 316,400株 170,000円 事業上の関係の維持・強化 (株)クラレ 86,250株 125,000円 事業上の関係の維持・強化 積水ハウス(株) 90,950株 120,000円 事業上の関係の維持・強化 東海旅客鉄道(株) 10,000株 112,000円 事業上の関係の維持・強化 (株)池田泉州ホールディングス 206,963株 102,000円 取引銀行との関係の維持・強化 帝人(株) 425,000株 99,000円 事業上の関係の維持・強化 東レ(株) 140,000株 98,000円 事業上の関係の維持・強化 (株)滋賀銀行 181,020株 96,000円 取引銀行との関係の維持・強化 ダイニック(株) 459,000株 81,000円 事業上の関係の維持・強化 三井住友トラスト・ホールディングス(株) 187,568株 80,000円 取引銀行との関係の維持・強化 東日本旅客鉄道(株) 10,000株 75,000円 事業上の関係の維持・強化 近畿日本鉄道(株) 155,455株 65,000円 事業上の関係の維持・強化 長瀬産業(株) 47,124株 62,000円 事業上の関係の維持・強化 ユニチカ(株) 1,013,200株 58,000円 事業上の関係の維持・強化 (株)南都銀行 154,532株 58,000円 取引銀行との関係の維持・強化 本田技研工業(株) 12,245株 46,000円 事業上の関係の維持・強化 西日本旅客鉄道(株) 10,000株 42,000円 事業上の関係の維持・強化 イオン(株) 32,149株 38,000円 事業上の関係の維持・強化 コニカミノルタホールディングス(株) 51,000株 37,000円 事業上の関係の維持・強化 本来ならば「,000円」ではなく「,000,000円」を付加して出力するはずなのですが うまく動作せず「,000円」が付加されてしまっています。 どこを直せば正しく動作するでしょうか? ご教授の程よろしくお願いします。

  • 【Ruby】shift-jisのページの置換

    content="text/html; charset=shift-jis"のページを読み込んで、文字列の置換がしたいです。 #!/opt/local/bin/ruby require 'uri' require 'open-uri' url='http://hoge.hoge' open(url,'r:shift_jis'){|io| content = io.read content.gsub!(/ほげ/,'ホゲホゲ) print content } 上記の様に書いてみました。ソースコード自体はUTF-8で記述しました。 実行すると、 `gsub!': incompatible encoding regexp match (UTF-8 regexp with Shift_JIS string) (Encoding::CompatibilityError) となってしまいます。 どうしたらよいのでしょうか? rubyのバージョンは ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin12] です。 以上、よろしくご指導のほど、お願い申し上げます。

    • ベストアンサー
    • nomorevup
    • Ruby
    • 回答数1
  • Ruby 文字の挿入(置換)

    こんにちは。 最近Rubyでスクローリングをしているのですが、その中で文字の挿入をする場面がありました。 今現在はgsub!を用いた置換で無理矢理くっつける形を取っているのですが、 どうも効率が悪く、汎用性に欠けるような気がします。 何かもっといい方法があるのでしょうか。 曖昧な質問で申し訳ありませんが、よろしくお願いします。 以下プログラムになります。 57 when /株式数(株)\t貸借対照表計上額(千円)|株式数(株)\t貸借対照表計上額(千円)/ 58 while text.match(/\d[0-9]*?\t/) 59 text.sub!(/\d[0-9]*?\t/){|s|s.concat("株1")} 60 text.sub!(/\t株1/,"株q") 61 text.sub!(/\d[0-9]*?\t/){|s|s.concat("円")} 62 text.sub!(/\t円/,",000円q") 63 end 64 text.gsub!(/q/,"\t") 改変しようとする部分の原文は以下のような文章です。 当事業年度 銘   柄 株式数(株) 貸借対照表計上額(百万円) 保有目的 (株)ナガホリ  192,000  47 取引の円滑化 (株)東日本銀行  181,000  45 取引の円滑化 (株)大垣共立銀行  99,000  27 取引の円滑化 イオン九州(株)  16,027  25 取引の円滑化 (株)名古屋銀行  37,000  14取引の円滑化 (株)みずほフィナンシャルグループ  63,800  13 取引の円滑化 (株)三菱UFJフィナンシャル・グループ  22,700  12 取引の円滑化 (株)桑山  8,800株  5,000,000円 取引の円滑化

  • 「rails s」でサーバーが起動できないです。(

    railsにおいて「rails s」でサーバーが起動できないです。(以下エラー文あり) 正直、上記の件、原因がわからなく困っております。 必要な情報は都度教えて頂ければ追記致します。 railsのインストールは確認できております。 sqlite3のインストールもできております。 gemのアップデートなども試しました。 一通り、ネットで同じような症状がでた方のページを拝見し上記対策を行いましたが、 上手くいきませんでした・・・。 宜しくお願いいたします。 Usage: rails new APP_PATH [options] Options: -r, [--ruby=PATH] # Path to the Ruby binary of your choice # Default: /Users/ryouhasegawa/.rbenv/versions/2.1.5/bin/ruby -m, [--template=TEMPLATE] # Path to some application template (can be a filesystem path or URL) [--skip-gemfile], [--no-skip-gemfile] # Don't create a Gemfile -B, [--skip-bundle], [--no-skip-bundle] # Don't run bundle install -G, [--skip-git], [--no-skip-git] # Skip .gitignore file [--skip-keeps], [--no-skip-keeps] # Skip source control .keep files ・ ・ ・ Description: The 'rails new' command creates a new Rails application with a default directory structure and configuration at the path you specify. You can specify extra command-line arguments to be used every time 'rails new' runs in the .railsrc configuration file in your home directory. Note that the arguments specified in the .railsrc file don't affect the defaults values shown above in this help message. Example: rails new ~/Code/Ruby/weblog This generates a skeletal Rails installation in ~/Code/Ruby/weblog. See the README in the newly created application to get going.

  • 演算子の再定義とインスタンス変数の参照と代入

    list9.1とlist 9.3をあわせた二次元の座標、xとyを持つ プログラムです class Point attr_reader :x, :y def initialize(x=0, y=0) @x, @y = x, y end def inspect # 表示用 "(#{x}, #{y})" end def +(other) # x、yのそれぞれを足す self.class.new(x + other.x, y + other.y) end def -(other) # x、yのそれぞれを引く self.class.new(x - other.x, y - other.y) end def [](index) case index when 0 x when 1 y else raise ArgumentError, "out of range `#{index}'" end end def []=(index, val) case index when 0 self.x = val when 1 self.y = val else raise ArgumentError, "out of range `#{index}'" end end end point = Point.new(3, 6) p point[0] #=> 3 p point[1] = 2 #=> 2 p point[1] #=> 2 p point[2] #=>エラー(ArgumentError) についてお尋ねしたいのですが、 def [](index)で演算子を再定義する際、値を参照する方法で def [](index)  case index  when 0   x   : と、していますが、xp.135のアクセサの説明など では@xと「@」が要りそうな感じがするのですが、この 場合は省いて大丈夫なんでしょうか? プログラムがローカル変数と間違って処理したりという ことは無いんでしょうか。 仮にないとすれば、ここのcase文にはインスタンス変数 と同じ名前のローカル変数などは定義できないのでしょうか? ご教授願います。

    • ベストアンサー
    • noname#208914
    • Ruby
    • 回答数2
  • windows7で複数のrbファイルをタスクスケジ

    windows7で複数のrbファイルをタスクスケジューラで定時実行する際の効率的な方法を教えてください。 今のところファイル1かは30までを順次実行するかんじです。 実行するファイル数が膨大なので、個別にタスクスケジューラに設定するのは煩わしいので、良い方法があったら教えてください。

  • Ruby 改行文字の挿入

    こんばんは。 Rubyにおいて、改行の無いhtmlファイル(/home/edinet/**/*.html)を読み込む際に先に改行文字を入れておき、10~15行目の正規表現の通りに文字列を取得したいと考えています。 下記のままのプログラムだと改行が無いhtmlファイルであるため余計な部分まで取得してしまいます。 以下例になります。 ”中外製薬(株) 100株 0,000,000円 情報収集のため”の部分の後に指定した普通株式という文字があるにもかかわらずそれ以降も取得してしまっています。 当事業年度 銘   柄 株式数(株) 貸借対照表計上額(百万円) 保有目的 大正製薬ホールディングス(株) 300,000株 2,493,000,000円 取引関係の強化のため 日本水産(株) 8,000,000株 1,736,000,000円 取引関係の強化のため 大日本住友製薬(株) 913,000株 1,497,000,000円 取引関係の強化のため JCRファーマ(株) 550,000株 1,303,000,000円 取引関係の強化のため アルフレッサホールディングス(株) 176,900株 1,190,000,000円 取引関係の強化のため (株)スズケン 157,200株 628,000,000円 取引関係の強化のため 東邦ホールディングス(株) 243,400株 531,000,000円 取引関係の強化のため (株)メディパルホールディングス 319,100株 503,000,000円 取引関係の強化のため コニカミノルタ(株) 445,000株 428,000,000円 取引関係の強化のため (株)三菱UFJフィナンシャル・グループ 611,000株 346,000,000円 取引関係の強化のため (株)ほくやく・竹山ホールディングス 251,500株 176,000,000円 取引関係の強化のため (株)みずほフィナンシャルグループ 504,080株 102,000,000円 取引関係の強化のため (株)バイタルケーエスケー・ホールディングス 99,600株 77,000,000円 取引関係の強化のため イワキ(株) 29,000株 5,000,000円 取引関係の強化のため 塩野義製薬(株) 1,000株 1,000,000円 情報収集のため 田辺三菱製薬(株) 1,000株 1,000,000円 情報収集のため 小野薬品工業(株) 100株 0,000,000円 情報収集のため (株)三菱ケミカルホールディングス 1,500株 0,000,000円 情報収集のため アステラス製薬(株) 100株 0,000,000円 情報収集のため 武田薬品工業(株) 100株 0,000,000円 情報収集のため エーザイ(株) 100株 0,000,000円 情報収集のため 第一三共(株) 200株 0,000,000円 情報収集のため 中外製薬(株) 100株 0,000,000円 情報収集のため 普通株式 296,000,000株 計 296,000,000,000,000円 普通株式 132,891,217株 132,891,217,000,000円 東京証券取引所(市場第一部) 単元株式数1,000株 計 132,891,217株 132,891,217,000,000円 ― ― 平成14年8月2日(注) ― 132,891株 ― 26,137,000,000円 △8,735株 22,454,000,000円 政府及び地方公共団体 金融機関 金融商品取引業者 その他の法人 外国法人等 個人その他 計 個人以外 個人 株主数(人) ― 48株 38,000,000円 273株 130,000,000円 19株 18,939,000,000円 19,447株 ― 所有株式数(単元) ― 21,507,000,000円 1,088株 34,172,000,000円 26,219株 22,000,000円 48,527株 131,535,000,000円 1,356,217株 所有株式数の割合(%) ― 16.35,000,000円 0.83株 25.98,000,000円 19.93株 0.02,000,000円 36.89株 100.00,000,000円 ― 以下のメソッドでそういった事をしようとする場合、どのようにして入れれば良いのでしょうか? File.openとeach_line、gsub!を用いて置換して挿入する方法では上手く取得することができませんでした。 以下プログラムになります。 1 text = "" 2 3 data = Dir.glob("/home/edinet/**/*.html") 4 5 data.each do |find| 6 7 flag = nil 8 IO.foreach(find) do |line2| 9 10 case line2 11 when /保有目的が純投資目的以外の目的である投資株式の保有区分、銘柄、株式数、貸借対照表計上額及び保有目/ 12 flag = true 13 when /保有目的が純投資目的である投資株式の前事業年度|保有目的が純投資目的|普通株式/ 14 flag = false 15 end 16 17 text << line2.chomp if flag == true 18 19 end 20 21 22 23 text.gsub!(/<\/td>/,"\t") 24 text.gsub!(/<\/tr>/,"\n") 25 text.gsub!(/<[^>]+>/,"") 26 27 text.gsub!(/前事業年度特定投資株式/,"前事業年度") 28 text.gsub!(/当事業年度特定投資株式/,"当事業年度") 29 text.gsub!(/前事業年度  特定投資株式/,"前事業年度") 30 text.gsub!(/当事業年度  特定投資株式/,"当事業年度") 31 text.gsub!(/前事業年度\t\t\t\t\n銘   柄/,"\n前事業年度\t銘   柄") 32 text.gsub!(/当事業年度\t\t\t\t\n銘   柄/,"\n当事業年度\t銘   柄") 33 text.gsub!(/^.*nbsp.*/,"") 34 text.sub!(/銘柄\t株式数/,"\t\t\t\t\n前事業年度\t銘   柄\t株式数") 35 text.sub!(/銘柄\t株式数/,"\t\t\t\t\n当事業年度\t銘   柄\t株式数") 36 text.sub!(/銘柄\t株式数/,"\t\t\t\t\n前事業年度\t銘   柄\t株式数") 37 text.sub!(/銘柄\t株式数/,"\t\t\t\t\n当事業年度\t銘   柄\t株式数") 38 text.gsub!(/前事業年度 特定投資株式/,"") 39 text.gsub!(/当事業年度 特定投資株式/,"") 40 41 print text ご回答の程よろしくお願いいたします。