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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
43 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:54:21 ] >>40 > sortよりsort_byの方が劇的に速い 「sortが遅い場合は」な
44 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 08:46:23 ] >>39 hashやstructを構造体みたいな使い方で大量に使う時の注意点 速度: Hash(キーがsymbol) > Struct > Hash(キーがstring) >>>(超えられない壁)>>> OpenStruct
45 名前:デフォルトの名無しさん [2009/08/10(月) 10:32:18 ] ちょっとお聞きしたいのですが、 rubyでのgui開発で、 タブによって選択肢を選んだり、数値を代入して、 それをある形式で複数のテキストファイルに出力することはできますでしょうか。 いままでfortranしか触ったことがないのですが、 guiを作る必要がでてきまして、どのプログラムがいいか選んでいる状態 なのですが、もしよろしければ教えていただけると幸いです。
46 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 10:40:35 ] その程度どんなGUIでもできるでしょ >どのプログラムが・・・ 言語から選んでるってこと? 自分が使うだけ(もしくは使う人みんなRuby使い)ならRuby+何かGUIでもいいけど そうでないならコンパイルして実行形式にする言語を個人的には勧める
47 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:06:09 ] >>46 ありがとうございます。そういうのはどれでもできるんですね 実行形式できる言語というのをちょっと勉強してみます
48 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:08:24 ] >>45 jp.rubyist.net/magazine/?0001-RubyGUI を読め
49 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:25:45 ] IronRubyはダメ?
50 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:30:18 ] Ruby中級者であるなら何使ってもよい 初心者がRubyでGUIやるのはただのバカ
51 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:49:28 ] なんでもそれひとつで済ませられる何か、を求めてこそ 何か最後のひとつ以外を学んだら死ぬ、という呪いをかけられていてこそ プログラミング初心者 老害は立ち去れ
52 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 12:02:35 ] BASIC(接頭詞はなにでもなんでも可)であらゆる全てを作っていたあのころの夢を 今の人たちはRubyに見ているのだよ
53 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 12:28:22 ] 使いやすいGUIビルダーと、充実した日本語ドキュメントがあれば もはや「全部Ruby」で問題ないレベルまでは来てるんだけどな 最後に残った二つの関門が大きい >>45 とにかく動けばいいと言うのなら、VisualBasicあたりをオススメする 後のことを考えてRubyでやりたいのなら VisualuRuby+FormDesigner、WxRubyあたりを使うのがオススメ
54 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 12:33:36 ] >>53 winの話なの?それにしてもC#のほうがいいと思う
55 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 12:39:29 ] 他のGUI言語でAPIの使い方を学び その知識を利用してRubyからAPIを直に呼ぶ というのが基本だと思う
56 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 17:18:45 ] Windowsの場合、APIを直に呼べばGUIプログラミングができるってもんでもないしなあ。 ウィンドウプロシージャをWindowsからどう呼ばせるかという最大の問題がある。
57 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 07:22:00 ] foo.xxx = foo.xxx + 123 で xxx に何入れても代入できる仕組みってできますか? property_missingで検索したらGroovyしかヒットしない…
58 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 07:27:33 ] Rubyに言語仕様としてのプロパティやアクセサというものは存在しない あくまで「遠目に見ればそのように見えるかもしれない動作」を 単なるインスタンスメソッドで代用しているに過ぎない >>57 設計思想自体に何か重大な誤りがあるようにしか見えないが、 とりあえずは foo の属するクラス定義の method_missing の中で分岐書くしかないな
59 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 08:02:55 ] 「インスタンス変数が初めて使用されたときにアクセサメソッドを定義させることはできませんか」 というような質問は年に何回か見るな 動的言語を名乗ってる以上できても面白そうだが、現行では残念ながらできない クラス設計者が @foo = 100 とする代わりに毎回 instance_variable_initialize(:foo, 100) と書くようにする、みたいな 予防法的なめんどくさい手順しか思いつかん あ、 instance_variable_initialize は自作してね
60 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:13:07 ] OpenStructは?
61 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:16:51 ] そのへんは > foo.xxx = foo.xxx + 123 を実現するということがどんだけ重要で取替不可かによるな これの実現のためにどんだけの不便を強いる覚悟があるかみたいな
62 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:01:18 ] >>59 はostruct.rbを写経してこい
63 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:58:56 ] >>57 デフォルトの値が0っぽいから… fooのクラスがFooとすると class Foo def initialize @vals=Hash.new(0) end def method_missing(name,*args) x=name.to_s if name[-1..-1]=='=' then @vals[name[0..-2]]=args[0] else @vals[name] end end end これでよかろうか(引数の数の検証は自分で書いてちょ)
64 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:16:11 ] class ZeroStruct < OpenStruct def initialize(*) super; @table.default = 0; end end foo = ZeroStruct.new
65 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:03:30 ] vim使っている人ってマイナーな人? それともメジャー? オススメってある?
66 名前:デフォルトの名無しさん [2009/08/11(火) 14:05:22 ] エディタの話題は荒れるって
67 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:26:38 ] 小学校の野外授業の注意プリントみたいだが、普段使っているものでよい Rubyのためだけに新規操作を覚えるとかマジキチ
68 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:34:15 ] ┏┳┳┓ ハイ. ┏┳┳┓ ┏┫┃┃┃ .エディタの話は ┃┃┃┣┓ ┃┃┃┃┣┓ ここまで ┏┫┃┃┃┃ ┃ ┃┃┏━━━┓┃┃ ┃ ┃スレチ ┣┫ . ・∀・ ┣┫. STOP!┃ ┗━━━━┛┗┳━┳┛┗━━━━┛ ┏┻┓┃ ┏━┛ ┣┻┓ ┗━━━┫ ┗━┓ . ┗━━━┛
69 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:34:50 ] AA厨うぜえ
70 名前:デフォルトの名無しさん [2009/08/11(火) 14:38:00 ] 厳密には「アスキー」アートではない。
71 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:38:21 ] ほら荒れた
72 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:41:48 ] ×荒れた ○荒らした
73 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:44:31 ] 専門板といえども、数行程度の目障りでないAAなら構わないと思うのだが。 それが嫌なら何で2chにいるの? 2ch以外にもコミュニティはあるよ?
74 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:49:14 ] >>42 Thx!
75 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:37:25 ] 久々に伸びてると思ったらこの内容かw 気に入らないレスをスルーできないと (掲示板を利用するのは)難しい
76 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:39:38 ] そもそもコピペでしか喋れない人間に価値はない
77 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:50:59 ] >>76 「そもそも」の使い方間違ってるぞ スレの流れに沿って喋れない人間には価値が無いんだよ、これが
78 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 16:54:25 ] Matz曰く「Vimは史上最も無意味なプロジェクト」 ぼくの Vim への憎悪が意味するのは、ぼくが Vim のことを史上最大の 無意味なプロジェクトだと見ているということだ。 Vim がしばらくの間スローガンにしていたのに、 「ちゃんとした Vi」みたいなのがあったよね。 そんなスローガンでスタートしたら、もうどこにも行くところがない。 Vi をちゃんとすることなんて不可能だからだ。
79 名前:デフォルトの名無しさん [2009/08/11(火) 17:05:26 ] >>78 それウケると思ったの?
80 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 17:10:51 ] >>76 >>78 のことかw
81 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 17:15:09 ] >>78 s/Vim/Emacs/g にしてもあまり違和感がないと思うのは俺だけ?w
82 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:38:49 ] LinusがSubversionについて言った発言
83 名前:デフォルトの名無しさん [2009/08/11(火) 18:42:24 ] つまんねーよ
84 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 21:38:18 ] ruby使いって性格最悪な人多いですね^^
85 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:11:09 ] ID出ないから自演し放題
86 名前:デフォルトの名無しさん [2009/08/12(水) 09:31:23 ] www.skuare.net/2007/07/ruby_5.html の一行掲示板にescapeをかけたいのですが, 表示部分を#{CGI.escapeHTML(message)}とすると, 改行したい<br>まで出力してしまいます. 単純に使い方わかってないこともありますが,ご指摘お願いします.
87 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:01:32 ] >>78 s/Vim/Ruby/g にしてもあまり違和感(ry
88 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:03:39 ] >>86 escapeしたいのは何故? escapeしたいものは何?
89 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:47:21 ] >>86 #!/usr/bin/ruby -Ke require 'cgi' require 'kconv' # 仕様:1行掲示板なのでユーザーはHTMLタグを使えず、改行の自動置換等も行わない # ログファイルがプレーンテキストでなくてもいいなら、ファイルにエスケープしたものを保存したくない logfile = 'bbs_test.log' log = File.open(logfile ,'r'){|f| f.read} rescue '' post = CGI.new["datapost"] if post log = CGI.escapeHTML(post.toeuc) + "<br>\n" + log # postデータを追加 File.open(logfile, 'w'){|f| f.print(log)} end print "Content-type: text/html\n\n" print <<EOF.toeuc <html> <head> <title>rubyで一行掲示板</title> </head> <body> <form method="POST"> 一言:<input type="text" name="datapost"> <input type="submit" value="送信"> </form> <hr> #{log} </body> </html> EOF
90 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 10:48:18 ] >>86 1. messageを行ごとに分解 2. 行ごとにescapeHTMLする 3. 行末に<br>をつける 4. 出力する という処理をする必要があるんじゃないかな。 def text2html(str) str.collect {|line| CGI.escapeHTML(line).sub(/$/, '<br>') }.join() end #{text2html(message)} とかでどうでしょうか。
91 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:02:58 ] >>89 面影残ってねえ
92 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:18:51 ] >>91 いまだに cgi-lib を使ったままのスクリプトを再利用してやる義理はねえよ irb> require 'cgi-lib' Warning:(irb):1: cgi-lib is deprecated after Ruby 1.8.1; use cgi instead true irb>
93 名前:デフォルトの名無しさん [2009/08/12(水) 11:43:55 ] >>90 やってみましたが,変わりありませんでした..
94 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:46:32 ] >>92 これは元記事がそもそもかなり悪いな わざわざ悪いやり方で学ぶ必要もあるまい
95 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:54:59 ] Ruby ユーザは CGI を書くなと言いたい (c) 弾
96 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 12:25:18 ] 不足なのなら順に説明すればいいんじゃね夏休み、と思ったが 1ページ目であっさり挫折した ttp://www.skuare.net/2007/06/ruby_1.html CGI の入力・出力構造は基本的に通常のスクリプトと変わらない ブラウザからのデータをサーバが解釈した環境変数 QUERY_STRING の中身が標準入力に既に入っていて 標準出力を行うとユーザーに送る HTML などのデータとみなされてサーバが一旦受け取るという違いしかない ただ、環境変数 QUERY_STRING を直接アクセスすることは今となってはまず無い たいていは適度に使いやすく変換してくれる肩代わりライブラリ、Ruby では標準添付の cgi 、を使う Web ブラウザは、HTML 上の送信ボタンが押されたときには、そのボタンを含む FORM 要素の INPUT 要素や TEXTAREA 要素の name 属性と value 属性をペアにしてまとめ、適当にエンコードしてサーバに送る 上記サイトでは HTML 上で value が省略されているが、普通にユーザーが入力すればその値が value としてサーバに送られる そして、サーバが受け取ったデータというのは通常 name1=値1&name2=値2… というようなひと連なりのテキストというか英数字記号の巨大な塊となっている これをいちいち安全かつ適切に自力分解復元するのは面倒だし不安なので、 cgi ライブラリにその仕事をやってもらう CGI.new とすると QUERY_STRING が読み込まれ、わかりやすく分解されて、[ ] メソッドで参照できるようになる たとえば HTML 上で name1 だった入力欄の値を利用したい場合は cgi = CGI.new cgi['name1'] とすればよい なお、標準出力はサーバが全て受け取るので、何かをユーザー向けに表示させたい場合は、 本来 Web サーバが行っていたことも全て自力でする必要がある(CGI はそういうふうになっている) HTML を表示したいのなら、 サーバが自動で行っていた Content-Type という HTTP ヘッダ等の表示も自前で行わなければならない print "Content-type: text/html\n\n" CGI#out のブロックで括るとこれを自動で行ってくれるのだが、まあそれは別の話
97 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:02:32 ] まずCGIの仕様をちゃんと紹介すべきだろう。
98 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:03:48 ] 小飼先生が猛然とアップを始めました
99 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:20:22 ] >>96 標準入力経由でQUERY_STRINGを渡したり 標準出力への出力が勝手にHTMLとみなされるWebサーバなんてあるの?
100 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:25:29 ] まあ、作ればあるんじゃないかねえ
101 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 13:41:41 ] とりあえずあれだ、QUERY_STRING は HTTP GET で、標準入力は HTTP POST だ そういやなんでわざわざ分けたんだろうな、これ GET も POST も全部標準入力に渡せばよかったんじゃねーかと思うんだが、当時なんかあったのか
102 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 14:37:04 ] RESTでこのあたりの考えが再認識されてるけど、本来の意図は、 GETはリソースを取りに行くメソッド。 リソースの位置(※)を特定する情報としてquery stringが付く。 POSTは指定リソースに対して新たなリソースを作成させるメソッド。 作成する情報はリソースの位置(※)ではないのでURLのquery stringで はなくHTTPリクエストのBODYで指定する。 ※ URL = Uniform Resource Locator
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でも動く