- 1 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 08:21:23 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者には時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に未対応であるためです。) なお 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 で勉強すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 103 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:51:40 ]
- 文字列をマッチするときに
=~ の右辺を別ファイルから参照させたいんだけど,どうすればいいですか?
- 104 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 16:54:57 ]
- いまいち質問がよくわからんけど
re = Regexp.new("$d+") if s =~ re みたいにすれば動的に正規表現作れる
- 105 名前:103 mailto:sage [2009/08/12(水) 17:48:43 ]
- 例えば word.txtのなかに
apple banana cat が入っていて,それが今後どんどん追加されていくときに =~の右辺がwordのなかを一行ずつ読み込んでマッチしているか確認してほしいのです. >>104 $dは特殊変数かなにかですか?
- 106 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 17:53:34 ]
- だからマニュアルか解説本くらい読めよ
たいてい書いてあるからさ 文字列を正規表現オブジェクトにする方法はいくつかある リテラルとして直接書き込む方法 /hoge/ 変数として // 内で展開する方法 str = "hoge" /#{str}/ Regexp オブジェクトの明示的な生成 Regexp.new("hoge") 好きなの選べ
- 107 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:02:47 ]
- >>106
すいません.wordの中をgetsで取得しながらやってみます. ありがとうございました.
- 108 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:44:30 ]
- >>105->>107
なにか話がすれちがっている気がする >>103 ストップワードっていう奴ににているのかな?それを用意しておきたいの?
- 109 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:51:43 ]
- /¥b#{Regexp.union(File.read('words.txt').split)}¥b/
という話?
- 110 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:52:55 ]
- あああ、yen になってしまった。 ¥ ← これもなっちまうかな……
- 111 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 19:51:19 ]
- Regexp#=~とString#=~両方あるから右辺ってのが何かピンとこない
- 112 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 02:00:02 ]
- 子飼団って、堀江もんの仲間で情弱のマカだった様な。
- 113 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 04:48:18 ]
- >>112
なんでそんなに悔しがってるの
- 114 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 05:48:28 ]
- ビョーキの人にだけ悔しがってるように見える書き方をしたから。
- 115 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:17:45 ]
- × ビョーキの人にだけ悔しがってるように見える書き方をしたから。
○ おちんちんびろーん
- 116 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:22:05 ]
- >>115
なんでそんなに悔しがってるの
- 117 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 07:36:36 ]
- おちんちんびろーん
- 118 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 08:06:20 ]
- おまんまんがばーん
- 119 名前:デフォルトの名無しさん [2009/08/14(金) 03:40:25 ]
- WinXPで1.8.6のwin32oleで、Excelよりデータの取得をする場合で質問です。
例えば、A1 〜 A5 を取得するには cells = sheet.Range("A1:A5") と書きますが、 データがある領域の全域を指定するにはどうしたら良いでしょうか? 行と列の数が5x3程度なら大したこと無いのですが、複数のシートが数千行x数十列の データを持っている場合だと毎回スクロールして端の位置を確認しなければならず不便です。 どなたかよろしく願います。
- 120 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 04:58:36 ]
- VBAの知識はあると仮定
「Excal シートの端」でぐぐったここ ttp://oshiete1.watch.impress.co.jp/qa4146366.html
- 121 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 07:00:34 ]
- pc12.2ch.net/test/read.cgi/tech/1137771139/
【OLE】オートメーション総合スレ【ActiveX】
- 122 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 11:48:54 ]
- 子飼団ってtwitterで、「いくぞ、ちんこぉぉぉぉぉぉぉぉぉぉぉぉ」とか、
「わしはでかいがあそこは小さい」とか「オ、オオオ、オ、奥野、奥野、奥野の肛門カッカッカカカツカヤツヤクカツ括約筋、ヒャー!」 」 とか言ってた奴だろ?下品すぎる信用できない
- 123 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 13:54:57 ]
- >>120,121
さんくす VBAの要領でできるんですね。
- 124 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 14:43:17 ]
- Ruby通さないほうが書きやすいし正確だし速いんじゃね、とか思ったらこの支配からの卒業
- 125 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 00:01:21 ]
- >>122
酒飲んでたとしたら許せるレベルだな。 括約筋ごときで下品って言ってどうする。 ゴルゴ13は、マンガの中で 女スパイとエッチして、 「この括約筋はロシア女だな」と スパイの母国を言い当てたんだぞw
- 126 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 05:00:39 ]
- 自演醜い
- 127 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 05:02:35 ]
- ここまで全部電網親方の自演
- 128 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:11:07 ]
- >>125
上と下のレスのつながりがわからんw
- 129 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 08:16:31 ]
- 下品な話はぴんくちゃんねるでどうぞ
- 130 名前:デフォルトの名無しさん [2009/08/15(土) 16:08:48 ]
- Ruby1.9系でシーザー暗号プログラムを作っています。
1.8では文字列配列をFixnumとして扱えましたが1.9ではStringが帰ってきます。 今、each_byteを使ってますがもっとスマートな方法を教えてください
- 131 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 16:16:37 ]
- メールヘッダのMIMEエンコードはRubyではどうするのでしょうか?
Perlでいう以下です。 use Encode; $text = "あ"; #ソースコードはcp932 Encode::from_to($text, "cp932", "MIME-Header-ISO_2022_JP"); print $text; #=>=?ISO-2022-JP?B?GyRCJCIbKEI=?=
- 132 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 16:57:03 ]
- >>131
text = NKF.nkf('-M','あ')
- 133 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:14:27 ]
- >>132
d
- 134 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 17:32:39 ]
- >>130
文字列配列をFixnumで扱うのくだりがさっぱりわからんが、 Ruby1.8のStringはたまたまバイト列だっただけだ バイト列として扱いたければeach_byte等で回せ
- 135 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 19:31:18 ]
- 1.9はpack unpackも使えないのか?
- 136 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:23:59 ]
- >>130
str.tr("A-Z", "B-ZA")
- 137 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:32:30 ]
- >>135
普通に使えるよ。
- 138 名前:デフォルトの名無しさん [2009/08/16(日) 04:39:04 ]
- >>130です
"aaaa".bytes.to_a[2] のような形で、同じようなことができるようです。答えてくださったかたありがとうございました
- 139 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 05:47:38 ]
- スマートには見えんのだが…
- 140 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 06:04:49 ]
- 子飼団ってテレビとかに出てるくらいだから本来下衆でしょ。まともなら低能なマスゴミとは距離を置いてる。
- 141 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 06:16:40 ]
- >>139
ホワイラーなんだと思う
- 142 名前:デフォルトの名無しさん [2009/08/16(日) 06:31:12 ]
- >>139
codepad.org/rgAGQvq5 別に代入する所もいらないし、trと違って任意の数だけ進められる
- 143 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 07:16:44 ]
- str.unpack('C*').collecgt {|x| x+i}.pack('C*')
なら1.0でも1.9でも動く
- 144 名前:デフォルトの名無しさん [2009/08/16(日) 20:07:42 ]
- 質問です。
使用している端末エミュレータの高さ(行数)を取得するには どうすればいいのでしょうか?
- 145 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:09:55 ]
- >>144
www.ruby-lang.org/ja/man/html/curses.html
- 146 名前:144 mailto:sage [2009/08/16(日) 22:44:47 ]
- >>145
ありがとうございます。 Curses::lines でいけました。
- 147 名前:デフォルトの名無しさん [2009/08/17(月) 00:26:17 ]
- class Parent
attr_accessor :foo end class Child < Parent #... end という継承関係がある時、Childクラスではfooアクセッサーを 削除したいのですが、どうすればよいのでしょうか。 具体的に書きますと以下のように例外が発生してほしいです。 child = Child.new p child.foo #=> 例外発生!
- 148 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:39:58 ]
- Rubyにアクセサは存在しない
ただのメソッドだ ということを踏まえると class Parent attr_accessor :foo end class Child < Parent undef :foo end Child.new.foo NoMethodError: undefined method `foo' for #<Child:0xb7d42530> from (irb):8 from :0
- 149 名前:デフォルトの名無しさん [2009/08/17(月) 00:46:40 ]
- リスコフの置換規則に違反することになるかもしれないが、undef_method :foo, :foo= というのがある。
- 150 名前:デフォルトの名無しさん [2009/08/17(月) 00:56:53 ]
- >>143
codepad.org/QlJCG6Ry できました。ありがとう
- 151 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 03:31:00 ]
- リスコフなんて糞くらえ。
ってか変数に型が無い言語で継承するって、実装の継承しか無いんだから undefでも好き勝手にしたらいいと思う。 え?俺OO分かってない?
- 152 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 04:29:32 ]
- >>147の要求の時点でLSP無視なんだから何やっても構わんよ
特定のメソッドの有無に意味を持たせようとすること自体が邪悪
- 153 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:10:02 ]
- > Rubyにアクセサは存在しない
このへんは後々尾を引いてくると推測
- 154 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:15:23 ]
- 特定のメソッドの有無こそがオブジェクトの本質ぢゃないか。
- 155 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:20:24 ]
- Rubyにアクセサは存在しないっつーか、
アクセサは、作るもの(用意するもの)なんじゃねーの? あるメソッドがアクセサかどうかというだけで。
- 156 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 10:45:20 ]
- アクセサというシステム的なナニカがあるわけではない、という程度の意味なような気もする
たとえば、Object#accessors でアクセサメソッドの一覧が返るとか def hoge と def hoge= と attr_reader :hoge と attr_writer :hoge を全部定義しても hoge() と hoge=() と hoge と hoge= で全部別個に使い分けが可能だとか
- 157 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:34:53 ]
- リファレンスマニュアル FAQより
www.ruby-lang.org/ja/man/html/FAQ_A5E1A5BDA5C3A5C9.html > 5.4 オブジェクトのインスタンス変数を外から参照できますか > 直接はできません。あらかじめそのオブジェクトにインスタンス変数を参照するためのメソッド (アクセサと言います) > を定義しておく必要があります。たとえば以下のようにします。 メソッドとアクセサは同じレベルの概念じゃないだろ
- 158 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 14:44:57 ]
- 大変だ、>>157だけが明後日の方向に
- 159 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:05:41 ]
- アクセサってのはインスタンス変数へのアクセスを提供する何かであって
それが言語によってメソッドだったり属性参照式だったりするということじゃないの?
- 160 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 15:35:17 ]
- >>158
おまえが理解できてないだけだ
- 161 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:08:04 ]
- だからさ、>>148が悪いんだよ
- 162 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:11:43 ]
- 「Rubyにはアクセサという機構は存在せず、メソッド定義で代用する」
「定義の簡便のためにattr*系のメソッドがあるが、メソッド定義以上のことを期待するのは勘弁してください」 こう書けばよかったんだな
- 163 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:44:41 ]
- >>162が想定する他の言語のアクセサってどんなの?
- 164 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:46:42 ]
- アクセサが言語レベルで実装されてる言語なんてあるのか?
- 165 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:48:22 ]
- def attribute=(value)
これって明らかにアクセサ用の機能だろ
- 166 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 16:58:35 ]
- 初心者ですがまったく話がわかりません
- 167 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:01:10 ]
- 確かに、メソッド名の最後に(だけ)は = が使えるとか、
obj.foo = bar が obj.foo=(bar) の意味である、だとか、 言語レベルの機能だよな。
- 168 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 17:34:33 ]
- テストファイルで Enumerable を拡張してるんですが、これってテストにならないですよね?
- 169 名前:106.79-160-162.customer.lyse.net mailto:age [2009/08/17(月) 17:53:40 ]
- 自動焼人 ★ = 自動保守 ◆KAWORUKOFI = 自動保守#K9K?_D[L
名言集 その3 『いつもサボってばかりのキャップがウゼえ』 yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★ > 71 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:58:57.28 ID:PVAf+dux0 > >>69 > 大変って言うか > 毎日、報告されたのを見て、判断して、処理して、完了報告して、以下ループ。 > ちょっとでもミスすると、普段は作業もしてないキャップさんたちがさんざん文句言ってきて > その言いわけを考えないと、キャップはく奪されたりアカウント凍結されたりするから > > 登録されてから一年以上経って、やっといいたいこと言えるようになってきたよ。 ---------------------------------------------- この自動焼人 ★メールマガジンの配信停止をご希望される方は qb5.2ch.net/test/read.cgi/sec2chd/1250169591/ にて自動焼人 ★までご連絡ください
- 170 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:35:18 ]
- Array#include?だと指定した値と等しい要素がある場合trueを返しますけど、
等しい要素数を返すにはselectで条件を満たす要素だけとりだしてそれのsizeを調べるしかないでしょうか?
- 171 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:52:31 ]
- >>170
その通りです。 便乗して質問させて下さい。 include? ってなんで Array で再定義してるんでしょうか? Enumerable#include? とは違う実装になってるんでしょうか?
- 172 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:53:08 ]
- まあ基本的にはそう
grepしてもいいが、「一致する要素の数」というのを直接返すメソッドはない というかもしあったとしても内部でfind_allしてsize求めるはず
- 173 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:58:51 ]
- 例として非nilを数える場合
[true,false,1, "a",nil,nil].inject(0){|r, i| r += (!i.nil?) ? 1 : 0} 書いてみたはいいけど汚いなぁ
- 174 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:11:12 ]
- >>171
rb_ary_includesが遅いと困るからきちんと作ったのだと推測
- 175 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:16:15 ]
- NTFSの副ストリームって対応してる?
- 176 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:19:19 ]
- >>174
なるほど。Array#include? をネイティブに書いて少しでも性能をだそうとした ということですね。 でも。。今 ruby-1.9.1-p129 の array.c 見てみたんだけど、すごく当たり前な 実装なんですね。 この程度でもネイティブ化すると結構速くなるものなんですかね?
- 177 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:22:49 ]
- わざわざEnumerableで定義したのを探してアクセスする時間が惜しいからそばに入れたんじゃね
>>175 Windows版Rubyとして何かをしたという話は聞かない コンパイルしたときに自動で何かがどうかできるのなら対応してるかも
- 178 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:25:45 ]
- >>175
これで足りる? ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] open('foo.txt', 'w'){|f| f.write('in foo.txt') } open('foo.txt:sub', 'w'){|f| f.write('in foo.txt:sub') } puts File.read('foo.txt') puts File.read('foo.txt:sub')
- 179 名前:デフォルトの名無しさん [2009/08/17(月) 21:44:20 ]
- >>173
低脳死ねカス [true,false,1, "a",nil,nil].cmplact.length
- 180 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:49:39 ]
- >>179
低能氏ねカス s/cmplact/compact/
- 181 名前:デフォルトの名無しさん [2009/08/17(月) 21:54:05 ]
- cmplact?
- 182 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:54:11 ]
- length厨はマジでどうにかならんものか
- 183 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:58:14 ]
- size の方が好きなのけ?
- 184 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:58:26 ]
- >>170
sizeを調べる「しかない」わけではない。 cnt = 0 array.each {|x| cnt += 1 if some_condition(x) }
puts cnt あまり美しくないけど、どうぞ。
- 185 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:12:45 ]
- 質問です。
SGEをダウンロードしたいのだけれども、 www.etek.chalmers.se/~e8cal1/sge/index.html がNOT FOUNDになります。 いま、SGEはどこでダウンロードできますか?
- 186 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:27:53 ]
- 用途によって変えるっていう当たり前の答えが返ってくるとは思うけど・・・・
ary=["hage","hige","huge","hege","hoge"] の要素数を出力したいときに p ary.size これはaryを後で別の処理が行われると思われる場合でしょ んで、 p ["hage","hige","huge","hege","hoge"].size これは確認したい時だけでしょ んで、 ary_num=ary.size p ary_num ってやってる人がいるんだけど,これは変数が説明になってるってこと? どの段階で処理したものを変数に入れるかってのがわかんない。好き好きかな?
- 187 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:44:15 ]
- >aryを後で別の処理が行われると思われる場合
これは ["hage","hige","huge","hege","hoge"] の要素数を出力したいときに ary = ["hage","hige","huge","hege","hoge"] p ary.size という感じ aryに代入するのが前提なら、一番目は最も素直 二番目は主に説明・動作確認・デバッグで使われる 代入するのもめんどくさいとかスペース減らしたいとかそういうのが主な理由 三番目は正直くどい でも説明以外にも値をキャッシュしておきたいケースはあるし、そういう時には避けられない
- 188 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:45:40 ]
- 二番目は説明というかスレや記事とかでの解説だった
- 189 名前:186 mailto:sage [2009/08/17(月) 23:03:10 ]
- >>187-188
2番めと3番めの説明がわかりやすかったです。ありがとうございます。
- 190 名前:デフォルトの名無しさん [2009/08/18(火) 00:40:37 ]
- >>180
低脳死ね。タイプ量が多い s/l//
- 191 名前:デフォルトの名無しさん [2009/08/18(火) 00:54:11 ]
- >>190
低脳死ね。置換できてない。 cmplact => cmpact 正しくは compact ^
- 192 名前:チンパンジー愛ちゃん [2009/08/18(火) 02:24:08 ]
- >>191
うきっきーきーきぃっ
- 193 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 05:15:32 ]
- >>185
質問するスレ間違ってね? まあいいや、ここ行ってみ ttp://www.archive.org/
- 194 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 09:49:05 ]
- >>175
C:\> dir a.txt (略) 2009/08/18 09:46 0 a.txt (略) C:\> ruby -e "open('a.txt:foo', 'w'){|f| f.write 'abc'}" C:\> dir a.txt (略) 2009/08/18 09:46 0 a.txt (略) C:\> ruby -e "p IO.read('a.txt:foo')" "abc"
- 195 名前:デフォルトの名無しさん [2009/08/18(火) 14:13:54 ]
- くだらない質問だと思いますが、文字列
a = "001011" b = "000111" から c = "000011" を求める(論理積?)にはどうしたら良いのでしょうか?
- 196 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 14:25:39 ]
- irb> a = "001011"
irb> b = "000111" irb> ax = a.split(//n) irb> bx = b.split(//n) irb> p (0..5).to_a.map{|i| ax[i].to_i & bx[i].to_i}.join "000011"
- 197 名前:チンパンジー愛ちゃん [2009/08/18(火) 14:30:51 ]
- def and_str(a, b)
return (Integer(a) & Integer(b)).to_s(2) end
- 198 名前:チンパンジー愛ちゃん [2009/08/18(火) 14:33:05 ]
- def and_str(a, b)
return (Integer("0b" + a) & Integer("0b" + b)).to_s(2) end
- 199 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 14:38:04 ]
- >>196
1.9 だけでいいなら a[i] で分割いらないんだけどな どっちでも動作させるならまだ split がスレ的に無難か めんどい負の遺産じゃのう
- 200 名前:195 mailto:sage [2009/08/18(火) 14:45:00 ]
- >>196-199
ありがとうございました! 196が自分には理解しやすい一方、 198の方が速そうに見えるのですが(こちらはpaddingが必要ですね) 大量のデータを処理する際には、違いが出るでしょうか。
- 201 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 14:56:25 ]
- 100万桁を0.5秒で処理しないと銃殺されるとかそういう時にはチェックが必要
- 202 名前:195 mailto:sage [2009/08/18(火) 15:03:24 ]
- そこまで深刻じゃないので、また両方試してみます!
- 203 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 15:21:38 ]
- ハッシュがよくわからなくなったので質問させていただきます
h={"ja"=>{"a"=>1,"b"=>1,"c"=>0}, "usa"=>{"a"=>0,"b"=>0,"c"=>0} } となって次に "usa"=>{"a"=>1,"b"=>1,"c"=>0}が出たら h={"ja"=>{"a"=>1,"b"=>1,"c"=>0}, "usa"=>{"a"=>1,"b"=>1,"c"=>0} } となってほしいのですが,どうすればいいでしょうか? 説明が分かり辛いですが・・・ ループ内にハッシュのキーが一致したら加算していってほしいのです
|

|