Ruby

全875件中641~660件表示
  • Rubyでテキスト内容を別のテキストに一度に出力したいのですが、どのよ

    Rubyでテキスト内容を別のテキストに一度に出力したいのですが、どのようにすればよいのでしょうか。 rubyはさっきはじめたところです。 一通り検索しましたが、やり方がヒットしませんでした。 a.txtの内容: aaaaa bbbbb ccccc ... を、ファイルコピーではなくoutput.txtに出力したいのですが、 a = open("a.txt") o = open("output.txt",w) ??? a.close o.close で、???の部分にどのような処理を書けばよいのでしょうか。 putsやwriteで書いてみたのですが、(o.write a) #<File:0x28a4450> と出力され、(ファイルオブジェクトのアドレス?)、a.txtの内容が出力出来ませんでした。 a.xxx のようにするのかな、と予想しますが、方法は問いませんので、ご教示いただけないでしょうか。

    • ベストアンサー
    • Ruby
    • oshi810
    • 回答数2
  • define_singleton_methodについて

    define_singleton_methodについて 1.9.1p378を使用しています。 メタプログラミングに興味があって、 Classに動的に生成したmethodを追加する方法を調べてみると 色々な教科書にdefine_methodを使う例が書いてあるのを見つけました。 しかし、実際にプログラムしてみると"undefined method"になってしまいます。 Class.methods.grep /define/ してみると、"define_singleton_method"というものがあり、 define_methodの代わりに使ってみたら一応期待通りに動作しました。 googleで調べてみてもdefine_singleton_methodについて解説が見つけられませんでした。 1.9系になって名前が変わったのでしょうか? それとも似て非なるものなのでしょうか? 詳しい方、教えてください。<(_ _)>

    • ベストアンサー
    • Ruby
    • ayudaia
    • 回答数3
  • rubyでScalaのようにコールバックを変数として定義するには?

    rubyでScalaのようにコールバックを変数として定義するには? 最近Scalaの勉強を始めました。自分の一番好きな言語はrubyなので、比較しながら勉強してます。 参考書によると、関数をオブジェクトとして扱えるのがScalaの特徴との説明がありました。例えば、以下のような例なのですが、(行頭スペースは全角) class Kuku(a:Int,b:Int){  def calc(func:(Int,Int)=>String):String={   return func(a,b)+a*b  } } val f1=(a:Int,b:Int)=>a+"*"+b+"=" println(new Kuku(3,5).calc(f1)) これをrubyで書くと、(行頭スペースは全角) class Kuku  def initialize(x,y)   @x=x   @y=y  end  def calc   yield(@x,@y)+(@x*@y).to_s  end end puts Kuku.new(3,5).calc{|a,b| a.to_s+'*'+b.to_s+'='} とまでは書けたのですが、コールバック(ブロックパラメータの部分)、上記例だと |a,b| a.to_s+'*'+b.to_s+'=' の部分 を変数として定義(Scalaの例のf1として定義するところ)する方法を知りません。 このように関数を変数として定義する事ってrubyではできないと考えるのですが、そういった認識で間違いないでしょうか? ご指導の程、よろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • Array#shift().to_iの意味

    Array#shift().to_iの意味 Array#shift()メソッドの意味は先頭の要素を配列から取り除いて、それを呼び出し元に戻すものだと思います。 to_iメソッドは数字に変換するものだと認識しています。 では、Array#shift().to_iメソッドはArray#shift()メソッドで戻す要素を数字に変換するという理解でよいのでしょうか?

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数1
  • 消えたコロン

    消えたコロン 以下のプログラムを実行すると、「ruby」と出力されます。なぜ「:」が表示されないのか、納得できません。どなたか、理由を解説できる方はいらっしゃいませんでしょうか?なるべく簡単な言葉でお願いします。 def func(x) puts(x[:name]) end func(:date =>Time.now, :name => :ruby, :version => 1.9)

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数4
  • rubyでnums.each_char()の意味を探したい

    rubyでnums.each_char()の意味を探したい 参考書で、nums.each_char()の意味を探したいのですが、どうすればいいのでしょうか?普通にリファレンスを見ると、each_char()の別のクラスでの説明は見つかるのですが、numsクラスの説明がありませんでした。このような時、どうすれば解決できますでしょうか?このメソッドの意味と探す方法を教えてください。 当方初心者なので、簡単な言葉で説明してくださると助かります。 よろしくおねがいします。

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数1
  • twitteのソースでエラーが出てしまう件

    twitteのソースでエラーが出てしまう件 http://okwave.jp/qa/q5844244.html で、皆さんに教えていただいたお陰で、 twitterをインストールする事が出来ました。 ありがとうございます。 早速、以下のソースを試してみました。 ファイル名「1.rb」 require 'rubygems' require 'twitter' httpauth = Twitter::HTTPAuth.new( ユーザー名 , パスワード ) o_twit = Twitter::Base.new( httpauth ) ところが、 H:\Program Files\Ruby-1.9.1\bin>ruby 1.rb と、実行すると、 1.rb:2:in `require': no such file to load -- twitter -v 0.7.0 (LoadError) from 1.rb:2:in `<main>' というエラーが出ます。 ちなみに、 H:\Program Files\Ruby-1.9.1\bin>gem 1.rb と、実行すると、 ERROR: While executing gem ... (RuntimeError) Unknown command 1.rb というエラーが出て、実行できません。 これは、twitterがインストールされていないのでしょうか? それともソースがおかしいのでしょうか?

    • ベストアンサー
    • Ruby
    • kawa214
    • 回答数2
  • Ruby on Railsで入力フォームを作成しています。

    Ruby on Railsで入力フォームを作成しています。 そこで、入力されたid(table.id)と商品名カラム(table.product_id) を結合して商品ID(table.product_number)を 登録時に商品IDカラムに登録できないかと思っています。 商品名カラムは商品テーブルから読み込んでいます。 恐らく、callbackのしくみを利用すればできるのではないかと 思っているのですが、やり方がわかりません。 以上、よろしくお願いします。 環境は以下のとおりです。 ruby1.8.6 rails 2.3.5 db:mysql gems:1.3.5

    • nori714
    • 回答数1
  • Rubyで書かれたプログラムに、WinAPIを組み込みたいと思っていま

    Rubyで書かれたプログラムに、WinAPIを組み込みたいと思っています。 組み込む内容は、  「とある実行ファイル」に、割り当てられているCPUの数を1つにする事で、 APIに関しては、 -------------------------------------------------------- DWORD SetThreadIdealProcessor( HANDLE hThread, // スレッドのハンドル DWORD dwIdealProcessor // 理想的なプロセッサ番号 ); -------------------------------------------------------- これを組み込めば良いという事がわかりました。 しかし、分からない点が2箇所ありまして、  ・「スレッドのハンドル」  ・Rubyプログラムへの組み込み方 です。 どなたか、お分かりの方がいらっしゃいましたら、 ご教示お願いいたします。

  • ruby on railsのscaffoldで配列を定義するには

    ruby on railsのscaffoldで配列を定義するには rails2.3での質問です。 通常、scaffoldで >ruby script/generate migration TestData name:string id:integer のようにデータ構造を指定すると思うのですが、この時に配列を定義するには どうしたら良いのでしょうか? 通常の(C言語のような)配列でもハッシュでも構いません。 よろしくお願いいたします。

    • ベストアンサー
    • Ruby
    • usagiya
    • 回答数1
  • Rubyの入門書について

    Rubyの入門書について Rubyの勉強を始めて2週間、いま、ある本でつまずいています。今使っている本は「Ruby2 さまざまなデータとプログラミング」という本を使っているのですが、この本の一巻はまだわかりやすかったのですが、この本は急に説明が投げやりな感じがします。メソッドの説明で「自分で調べてください」だの、問題の解説がほとんどないなど、非常に不親切な感じがします。3日かけても1ページ進まないことなどざらで、自分にはこの本は早かったんだろうかと思い始めました。一方で、ここで逃げてしまってはいけないという風にも思います。ちなみに、私のRubyに関する知識は今使ってる本と、その一巻だけです。 そこで、質問です。特に「たのしいRuby」をやった時点でプログラム素人だった方に聞きたいのですが、「たのしいRuby」を一通りやるのにどのくらいの時間がかかりましたか? また、「Ruby2さまざまなデータとプログラミング」をもっている方、この本は本当に初心者向けなんでしょうか? 最後にこの質問を見てくれた皆様に質問です。短かいにもかかわらずわからないプログラムを見て、数日も考え続けるのは時間の無駄でしょうか?それともみんな初めはこんなもんなんでしょうか?

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数3
  • ギャスケット作成。修正の解説をお願いします。

    ギャスケット作成。修正の解説をお願いします。 入門書の問題で、二次元配列を使ってパスカルの三角形を作り、そこからシェルピンスキーのギャスケットを作りたいと思い、以下のプログラムを書きました。 ピクセルの指定の部分は省略します。 (↓パスカルの三角形の部分) pas = Array.new(HEIGHT) {|i| Array.new(WIDTH, 0)} pas[0][WIDTH / 2] = 1 for i in (1..HEIGHT - 1) for j in (1..WIDTH - 2) pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j + 1] end end で、2行目のpas[0][WIDTH / 2] = 1の、「WIDTH / 2」がまずかったらしく、パスカルの三角形の左下と右下が残念な感じになってしまいます。左下はすっぽ抜けていますし、右下には必要ないところで三角形が入ってきています。何でこんなことになるんでしょうか?簡単な言葉で説明してくださると助かります。 答えを見ると、「WIDTH / 2」を「WIDTH」に、「WIDTH」を「WIDTH*2」にかえてうまく出来てるんですが、なんでそうなるのっていう感じです。 私が持っている入門書の解説には、「加えるべき数字が利用できないことが原因です」とだけしか解説してません。 ここからはあまり関係ないと思うのですが ビットマップファイル作成の部分です。 File.open("gasket.bmp", "wb") do |file| file.write(["BM", HEADERS_LEN + WIDTH * HEIGHT, 0, HEADERS_LEN].pack(BITMAPFILEHEADER)) file.write([INFOHEADER_LEN, WIDTH, HEIGHT, 1, 8, 0, 0, 0, 0, COLOR_USED, COLOR_USED].pack(BITMAPINFOHEADER)) file.write("\xff\xff\xff\0") file.write("\0\0\0\0") (HEIGHT - 1).downto(0) do |y| 0.upto(WIDTH - 1) do |x| if pas[y][x] % 2 == 0 file.write("\0") else file.write("\x01") end end end end uptoの前の部分が0になっていますが、正解例は320になっています。ちなみに、ピクセル指定の部分で、WIDTHは640になっています。これもなんだかよくわかりません。 私は、一行目で配列のすべてにゼロが入っているから、「加えるべき数字」である数はすべての配列に入っていて、 Nilになるところはないと思うのです。 グーグル先生には聞きましたが、わかりませんでした。一言でもかまいませんので、どうか、よろしくお願いします。

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数6
  • Rubyを使用してcsvファイルを処理しているのですが、どうしてもでき

    Rubyを使用してcsvファイルを処理しているのですが、どうしてもできない事があり質問させていただきました。 下記のようにCSVファイルを処理したいのですが教えてください。 処理前CSVファイル内容:"abc",111,bbb,"ccc","123" 処理後CSVファイル内容:"abc",111,bbb,"xxx","321" 普通にCSVparserを用いて処理すると下記のようダブルクォーテーションが消えてしまいます。 処理後CSVファイル内容:abc,111,bbb,xxx,321 ご教授お願い致します。

  • パスカルの三角形をRubyで作る際、2次元配列をつかって、以下のように

    パスカルの三角形をRubyで作る際、2次元配列をつかって、以下のようになりました。 ビットファイルの作成部分や、ピクセルの指定の部分は省略します。 pas = Array.new(HEIGHT) {|i| Array.new(WIDTH, 0)} pas[0][WIDTH / 2] = 1 for i in (1..HEIGHT - 1) for j in (1..WIDTH - 2) pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j + 1] end end この中で、pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j + 1]とありますが、 (i,j)=(1,1)とすると、pas[1][1] = pas[0][0] + pas[0][2]で、 (i,j)=(1,2)とすると、pas[1][2] = pas[0][1] + pas[0][3] で続いていくわけですが、これでパスカルの三角形がなぜかけるのか、非常に疑問です。 どなたか、このプログラムがどうしてパスカルの三角形が書けるのか、プログラムの流れに沿って解説できる方、いらっしゃいませんか?

    • ベストアンサー
    • Ruby
    • ghfjri
    • 回答数2
  • Classの中のClass定義について

    Classの中のClass定義について 主にWindows環境でrubyを使用しているライトユーザーです。 ネットでソースを拝見していると、Class定義の中に更にClass定義がされているプログラムをみることがあります。以下のような感じですね。 Class Foo  Class Bar  ……  end …… end このようにClass定義を他のClass定義の中に書くのは、どのような理由によるのでしょうか? 素朴な疑問です、ご教示いただければ嬉しいです。

    • ベストアンサー
    • Ruby
    • siffon9
    • 回答数2
  • rubygemsとruby twitter gem ライブラリーを読み

    rubygemsとruby twitter gem ライブラリーを読み込もうとすると エラーになってしまいます。 ------ require 'rubygems' require 'twitter' エラーメッセージ H:\Program Files\Ruby-1.9.1\bin>gem ruby 1.rb ERROR: While executing gem ... (RuntimeError) Unknown command ruby H:\Program Files\Ruby-1.9.1\bin> ------------------- Winxpです。 ご指導のほどお願いします。

    • ベストアンサー
    • Ruby
    • kawa214
    • 回答数1
  • ruby1.9からtwitterライブラリをインストールするとエラーに

    ruby1.9からtwitterライブラリをインストールするとエラーになってしまいます。 環境はWinxpです。 H:\Program Files\Ruby-1.9.1\bin>gem install twitter と、すると、以下のエラーメッセージが・・・。 Building native extensions. This could take a while... ERROR: Error installing twitter: ERROR: Failed to build gem native extension. "H:/Program Files/Ruby-1.9.1/bin/ruby.exe" extconf.rb install twitter creating Makefile nmake 'nmake' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 Gem files will remain installed in H:/Program Files/Ruby-1.9.1/lib/ruby/gems/1.9 .1/gems/yajl-ruby-0.7.5 for inspection. Results logged to H:/Program Files/Ruby-1.9.1/lib/ruby/gems/1.9.1/gems/yajl-ruby -0.7.5/ext/gem_make.out ------------------- ちなみに、 H:\Program Files\Ruby-1.9.1\bin>gem install twitter4r とすると、インストールは出来ます。 ただ、requireでtwitterを読み込もうとすると 「msvcrt-ruby18.dllがありません」 と言うエラーになってしまいます。 助けていただければ幸いです。

    • ベストアンサー
    • Ruby
    • kawa214
    • 回答数2
  • ruby on railsについてなのですが、scaffoldで入力フ

    ruby on railsについてなのですが、scaffoldで入力フォーム、一覧表示、詳細表示を作成しました。 そこで、一覧表示の際、テーブルのカラムに存在しない番号を一番左に表示させたいと考えています。3件存在すれば、上から1,2,3とういようにです。テーブルのIDを表示するとIDの1を削除した場合、2,3,4となってしまうので、3件あれば、必ず、1,2,3としたいのです。 環境は以下のとおりです。 ruby1.8.6 rails 2.3.5 db:mysql gems:1.3.5 よろしくお願いします。

    • nori714
    • 回答数1
  • こんばんは、宜しくお願いします。

    こんばんは、宜しくお願いします。 rubyの超初心者で、「プログラミング入門-Rubyを使って-」のサイトで勉強を始めたのですが、 下記のurlのページ中の http://www.ie.u-ryukyu.ac.jp/~kono/software/s04/tutorial/Chapter=06.html ループの項目 「この最初の行をなくすにはどう変えたら良いでしょうか?」という質問が解けません。 超初心者ですみません。 宜しくお願いいたします。

  • Rails コンボボックスの値の保持について(select_tag,c

    Rails コンボボックスの値の保持について(select_tag,collection_select) こんにちは。 Ruby on Railsで簡単な一覧検索画面を作成中の者です。 検索時の検索条件にコンボボックスを使用しており、検索後にコンボボックスの値を保持したいのですが、どうしてもできません。 どなたかお分かりの方がおられましたらご教授いただけないでしょうか。 下記、作成中のソースです。 Viewの検索条件部 <%- form_tag({:action => "search"},{:method=> "GET"}) do -%> <th class="U" align="left" width="10%"><label for="userNm">ユーザー名</label></th> <td width="90%"><%= text_field_tag :userNm, @userNm %></td>  <th class="U" align="left" width="10%"><label for="authCd">社員権限</label></th> <td width="90%">  <%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, :include_blank => true) %>  <td align="center"><%= submit_tag '検索' %></td> Controllerクラス: def search #画面パラメータから検索条件を作成 c = Condition.new # ユーザー名 userNm = "" if params[:userNm] userNm = params[:userNm] c.and "USER_NM", "LIKE", "%#{userNm}%" end # コンボボックスの値を取得 if params[:auth] && !params[:auth]["authCd"].blank? c.and "AUTH_CD", params[:auth]["authCd"] end # 検索処理 @users = User.paginate(:order => "USER_ID asc", :per_page => 5, :page => params[:page], :conditions => c.where) # 検索条件保持 @userNm = params[:userNm] # コンボボックスの値が保持できない if params[:auth] @auth_authCd = params[:auth]["authCd"] end respond_to do |format| format.html # index.html.erb format.xml { render :xml => @users } end end 見づらくて申し訳ありませんが、ざっと上記のようになっています。 もう1つの検索条件であるユーザー名(userNm)は保持できるのですが、コンボボックス(社員権限)の値が保持できません。 select_tagや、selectも使ってみたのですが、どちらも同じ結果でした。 コンボボックスの条件は、Authモデルから値を読込み、一番上は空白にする。というものです。 どのように記述すれば保持できるのか色々調べてみたのですが、結局分からず仕舞いでした。。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Ruby