Ruby
- 文字コードの変換について教えてください
文字コードUTF-16、Little-Endian、改行コードCR/LF、BOMのデータを読み込み、 シフトJISに変換して処理するため、次のようにしたのですが、 中ほどのデータが消えてしまいます。 何か間違っていますか? require 'nkf' ... text = file_in.read text_shiftjis = NKF.nkf('-sW16L',text) p text_shiftjis #確認用出力
- Rubyで実行結果を時間差をつけて一行ずつ表示?
10000を 10でわっていくプログラムです。これを普通に実行すると、一度に実行結果が、表示されますが、秒数を設定して、一行ずつ間隔をあけて、表示するには、どのようにプログラムを書けばよいでしょうか? よろしくお願いましす。 ソースコード n=10000 while n>=1 do break if n <= 1 if n%2 == 0 n = n / 10 end puts n end 実行結果 1000 100 10 0 ↑ この実行結果を 1000 1秒後に 100 1秒後に 10 1秒後に 0 のように 時間差をつけたいです。
- 【Ruby】改行挿入 文字列操作
以下の様な文字列を <div>xxx</div>yy<span>zzz</span> 以下の様に編集したいです。 <div>xxx</div> yy <span>zzz</span> htmlのタグ毎に改行を挿入したいのです。 もしも上記例でyyがなければ以下の様に書くのですが、 require 'drb/drb' puts DATA.read.scan(/(<.+?>.+?<\/.+?>)/).join("\n") __END__ <div>xxx</div>yy<span>zzz</span> 以上、よろしくご指導の程、お願い申し上げます。
- wxrubyをつかった時のエラーに関して
wxrubyを使用した際、エラーが出て困っております。 ソースコードとエラー内容は以下になります。 <<base.rb>> require 'rubygems' require 'wx' class MyApp < Wx::App # <= Wx::App を継承する private def on_init # <= on_init を実装する Wx::message_box('Hello World!') return false # <= ここでtrueを返すとmainloopに入る end end MyApp.new.main_loop <<エラー内容>> kernel_require.rb:45:in 'require':126:"指定されたモジュールが見つかりません" rubyのバージョンは2.00、実行時OSはwindows7です。 wxrubyはgemをつかってインストールしました。 具体的には gem install wxruby とコマンドプロンプトに打ち込みました。 それでは、宜しくお願いします。
- Ruby CGIで 共通メニューを作るやり方
ホームページの共通メニューなどを書きたいときは、phpなら <?php include 'left_menu.html'; ?> で、外部から読み込めますが、 rubyのcgiでサイトを作った場合、共通メニューなどを外部から読み込むような書き方はあるのでしょうか? 教えてください。よろしくお願いします。
- Ruby on RailsでDBカラムにハイフン
初歩的な質問で恐縮です。 Ruby on Rails でDBのカラムにハイフンは使えますでしょうか。 多言語対応で中国語などを扱っているのですが、 カラム名が name_zh-tw のようなものがあるのですが、値が取得できずに困っております。。 例) Items テーブルに name_zh-twがある場合。 @item = Items.find_by_i(1000) @item.name_zh-tw =>NoMethodError: undefined method `name_zh' for #<Item:0xb605f364> のようになってしまいます。。 また、上記以外の箇所でもダブルクォートで囲ったら大丈夫な場合がありますが、ログには警告がでます。これは仕方ないのでしょうか。。 [WARN] Exception occurred during reader method compilation. [WARN] Maybe name_zh-tw is not a valid Ruby identifier? [WARN] compile error ----- 環境は以下の通りです。 何卒よろしくお願いいたします。 Ruby1.8.7 Rails2.3.15 MySQL5.5
- REXMLについて教えてください2
http://japan.internet.com/developer/20070703/27.htmlの doc.elements.each("guitars/make/model/color") { |element| puts element.text } を実行したら C:/DOCUME~1/.....: syntax error, unexpected '|', expecting '}' { |element| puts element.text } ^ C:/DOCUME~1/.......: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '(' { |element| puts element.text } ^ C:/DOCUME~1/Hideyuki/LOCALS~1/Temp/rb22C.tmp:7: syntax error, unexpected '}', expecting $end Complete(1) とエラーが出ます。 サイトのプログラムそのままなのですが、何か勘違いしてますか? Rubyのバージョンとかが関係あるのでしょうか?
- ruby+xml 特定の属性値をもつ要素の求め方
宜しくお願いします。 ↓のようなxmlファイルがあり、 #########hoge.xml############# <root> <a name="a1"> <b>bbb1</b> <b>bbb2</b> <b>bbb3</b> <c>ccc1</c> </a> <a> <b>bbb4</b> <b>bbb5</b> </a> <a name="a3" price="100"></a> </root> ###################### ↓と同じ処理をしたいのですが、 doc = REXML::Document.new(open("hoge.xml")) doc.elements.each("root/a[@name='a1']/b") do |element| ... end a1が変数名の場合、 どのように記述したらよいのでしょうか。 doc = REXML::Document.new(open("hoge.xml")) attr = a1 doc.elements.each("root/a[@name='????????']/b") do |element| ... end 基本的な内容で申し訳ありませんが、 宜しくお願いします。
- REXMLについて教えてください
XML文書を処理するプログラムを作っています。 http://japan.internet.com/developer/20070703/27.htmlを参考にして作り始めましたが、 require "rexml/document" include REXML file_name = SWin::CommonDialog::openFilename(nil, ["*.xml","*.xml"], 0x1000, "ファイル選択") doc = Document.new File.new(file_name) p doc としても、 <UNDEFINED> ... </> と表示されるだけです。 私の想定では、XML文全体が表示されると思ったのですが、これでも正常に動作しているのでしょうか? 普通のテキストファイルとして読み込めば、正常に画面に表示できます。 環境はRuby1.8.7 + RDE です。
- 【Ruby】基本的な質問 数字をローテーション
012 012 012 ..... 0、1、2と数値をローテーションさせたいです。 そこで以下の様に書いてみました。 r=0 loop do puts r r=r<3 ? r+1 : 0 sleep 1 end 012 3 012 3 012 3 ..... になってしまいます。 以下の様に書けば良いのですが、 r=0 loop do puts r r+=1 r=r<3 ? r : 0 sleep 1 end どうして、最初の式はダメなのでしょう? なんか理解できません。 以上、よろしくご指導の程お願い申し上げます。
- before_filter を普通のクラスで使う。
Rails の before_filter を普通のクラスで使いたいのですがどうすれば よいでしょうか? require でなにか読み込めばいい気もするのですが、 なにを読み込めば良いのかわかりません。
- プログラム実行中に強制停止させる方法
再び失礼します。 現在以下のようなソースコードを実行しています。 while true do print "commando?\n" command = gets if command == "end" then break end end ループから抜け出すために、getsメソッドを用いて、 endと入力されればループを抜けるという感じにしたいのですが うまく抜け出せず、無限ループに陥ってしまいます。 質問内容は、このように、getsメソッド実行中(?)にプログラムの強制停止を したいのですが、そのような方法はありますでしょうか。(例えばctrl+???とか) 実行環境は、terapadを使用してソースコードを書き、rubyコマンドプロンプトで rubyコマンドを使って実行しています。 それではよろしくお願いいします。 ※投稿確認したのですが、ソースコードにうまくインテンドが挿入されていません・・ 見づらくて申し訳ございません
- Rubyでwebページを取得するとき
Rubyでwebページを取得してtxtファイルに出力したいと考えています。 URLリストを別ファイルで用意して、それを片っ端から読み込んで表示させるものです。 require 'open-uri' require 'kconv' while url=gets next if url=="\n" page=URI(url).read page=Kconv.tosjis(page) puts(page) end これで成功するのですが、「URLリストにのっているwebページが見つからなかったら飛ばして次のページを取得しにいく」ことを追加したいです。 どう書けばいいでしょうか? 教えていただければ幸いです。 よろしくお願いします。
- Rubyのrandについて
Rubyを勉強中の初心者です。 「苺 コーヒー 花 美人 宇宙見物」と書いたファイル(sukinamono.txt)があります。 その中からランダムで1項目取り出して表示するスクリプトをつくりたいと思っています。 getsでsukinamono.txtを読み込んで、randを使うのかなと思ったのですが、スクリプトのうまい書き方がわかりません。 どなたかに教えていただければ幸いです。 よろしくお願いします。
- rubyのプログラムについて
rubyのプログラムで2~1000までの素数を列挙のものなんですがどこか違ってますか汗 考えたんですがよくわからなくて汗すみませんどなたかお願いします i=2 print "素数は\n" while i<=1000 do warukazu=2 flag=0 while warukazu<i do if i%warukazu==0 then flag=flag+1 warukazu=warukazu+1 else warukazu=warukazu+1 end end if (flag==0) then print i print"\n" end i=i+1 end
- 締切済み
- Ruby
- tachibana-san
- 回答数2
- Bass.rbでMP3ファイルを再生したい
DXRubyを用いたゲーム開発に興味を持ち、rubyの勉強を始めたものです。 MP3ファイルを再生できないと聞き、Bass.rbをつかおうと思ったのですが Bass.rubyをコマンドプロンプトで実行したところ、 「DL is deprecated, please use Fiddle」というエラー?が出ました。 dllファイルは同ディレクトリにもちろん置いてあります。 検索をかけてみましたが、いまいち納得いく回答がありませんでした。 これはどういうことなのでしょうか。 回答、宜しくお願いいたします。 (情報が不足していたら申し訳ございません。 誠に恐縮ですが、おっしゃっていただければ追加で書き込みを行います。)
- インストールしたgemがrequireできない
色々模索したのですが、解決策がみつかりませんでしたので、質問させていただきます。 何卒、宜しくお願いします。 現在CentOSにて、rubyをいじっており、gemでselenium-webdriverをインストールしたのですが、 別のファイル(sample.rb)からrequireしても `require': cannot load such file -- selenium-webdriver (LoadError)となってしまいます。 試しに別のファイルをrequireしてみたらできたので、gemの問題だと思っています。 以下のようにsample.rbに書きました。 require 'rubygems' require 'selenium-webdriver' ・ ・ ・ また、gem listにもはいっているため何が原因なのかよくわかりません。 ご参考までにgemの環境を以下に書きます。 RubyGems Environment: - RUBYGEMS VERSION: 1.4.2 - RUBY VERSION: 1.9.3 (2012-02-16 patchlevel 125) [i686-linux] - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE: /usr/local/bin/ruby - EXECUTABLE DIRECTORY: /usr/local/bin - RUBYGEMS PLATFORMS: - ruby - x86-linux - GEM PATHS: - /usr/local/lib/ruby/gems/1.9.1 - /root/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 1点気になりますのが、gemのパスです。 下記URLを参考にしました。 http://d.hatena.ne.jp/amacou/20090206/1233929888 $which gem /usr/local/bin/gem $sudo which gem /usr/bin/gem となっているため、パスを変えようと思いましたが、 サイトの通りではパスが変わりませんでした。 よくわからないということもありまして、/usr/bin/gemを削除してみましたがもちろんrequireできません。 ここからどのようにしたらよいかどうかご教授いただけますと幸いです。 以上、宜しくお願い申し上げます。
- Ruby ファイルの読み込み
cigファイルに下記のように書いて、テキストファイルを読み込んでますが、ここで質問があります。 puts File.readlines("test.txt") テキストファイルには、 下記のように3文字を改行して書いてあるのですが、↓ Hello !! Good Great これらをcgiファイルに読みこんでweb上で確認してみると Hello !! Good Great と一列に並んで表示されます。 改行も含めて、表示したいのですが、どのようにすればよいでしょうか? 教えてください。お願いいたします。
- ローカルプロキシを通すと携帯用ページが表示できない
ローカルプロキシをを使うと、 携帯用のページで時々WEBページの内容が正常に表示されないような状態です。 ページにもよりますが、大体4割くらいの確率でこの現象が起ります。 何も処理をかかずに使っても、ユーザーエージェントをプロキシの機能で変更してもこの現象はおこります。 ブラウザはchrome firefox IE を試しましたが、全てのブラウザで確認できました。 F5でページを更新しても画像やページの内容が読み込まれたり読み込まれなかったりするような状態です。 どうにかならないでしょうか。よろしくお願いします。 ソースコードは以下のようなものです。 require 'webrick' require 'webrick/httpproxy' require 'uri' server = WEBrick::HTTPProxyServer.new({ :BindAddress => '127.0.0.1', :Port => 8080, :ProxyContentHandler => handler, }) server.start
- ベストアンサー
- Ruby
- rararamuijin
- 回答数2
- 次へ 1 2 3 4 5 のような機能をつくるには
Rubyで単純な投稿するだけの掲示板をつくりました。この掲示板ですと、投稿すればするほどページが長くなってしまいます。なので投稿数が10件たまった時点で区切って、googleやアマゾンなどで検索したときに、でるような ⇒ 次へ 1 2 3 4 5 ・・・ 14 のような機能を作りたいのですが、書き方がわかりません。もし、わかりましたら教えてくれると大変嬉しいです。よろしくお願いします。 掲示板のソースコードは下記のようになっています。 keigiban.cgi ----------------------------------- #!/usr/bin/ruby require"cgi" cgi = CGI.new ThisFile = "./keigiban.cgi" puts <<HTML Content-Type: text/html <html> <head> <title>掲示板Test</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h1>掲示板</h1> HTML if cgi.params["message"][0] then f = open("text.log","a") f.puts"%d:%s"%[Integer(Time.now),cgi.params["message"][0]] f.close end puts <<HTML <form action="#{ThisFile}" method="post"> <input type="text" style=" name="message"> <input type="submit" value="submit"> </form> HTML messages = [] open("text.log").each{ |line| if line =~/^(\d+):(.*)$/ then messages << [Time.at(Integer($1)), $2] end } puts "<dl>" for time, msg in messages do puts "<dt>%s </dt>" % [ String(time)] puts "<dd>%s</dd>" % msg end puts "</dl>" puts <<HTML <hr> 掲示板Test </body></html> HTML