[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/16 09:04 / Filesize : 244 KB / Number-of Response : 847
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 23



1 名前:デフォルトの名無しさん mailto:sage [2008/11/20(木) 04:30:21 ]
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。

   【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
   【最新安定版の Ruby1.8.7 の使用をお勧めします】
    ※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
      1.9 の新機能の一部が利用可能なので初学者にお勧めです。
    ※ただし十分安定しているとは言えないので
      プロダクション環境での利用にはお勧めしません。

関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問は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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

545 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:21:20 ]
>>544
そんなこと言ったら2行目はメソッドチェーンで消えるし、
対象ディレクトリが専用ディレクトリならそもそも Dir.glob のワイルドカードつき文字列でも充分だ

君が *引数 をオボエタテだからだからといってわざわざ難しくする必要はない

546 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:28:48 ]
>>541
目に見えない文字や場所にマッチする正規表現は慎重に使ったほうがええぞ
半角空白にマッチさせるために \s を使ったりしないだろ
それと同じこと

547 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:30:19 ]
>>545
544じゃないけど、一般にsystemの引数は ' ' でjoinするより * で渡すほうが空白を含むファイル名等の問題をより安全に回避できるので、* のほうがお勧めだけどね

548 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:37:16 ]
*の引数展開はマニュアルでも辺鄙なとこにしか書いてないからな
使うなら堂々と初心者向け解説の3ページ目から使いまくるくらいの感じにして欲しいとは思う

549 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:45:05 ]
`
mkdir foo
mkdir bar
`

みたいに途中でシェルスクリプトだらだら書けるようなやり方ってない?
上の書き方だとmkdir fooだけ実行されるっぽい


550 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:49:19 ]
`` はシェルコマンドを実行したいときに使う記法じゃないぞ
返り値が必要なときに使うもんだ
system 使え

551 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 10:57:56 ]
>>544 >>547
やってみた?

552 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:17:32 ]
534です。
>>547
たいへん参考になりました。
ただ初心者スレで使うには説明が必要ですね。

553 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:21:00 ]
>>550
system "
mkdir foo
mkdir bar
"
でも変わらなかった



554 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:31:24 ]
>>553
シェルスクリプトとみなせる環境であるなら全部実行できるはず
動作しないとしたらWindowsかCygwinだな

555 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:33:20 ]
渡した文字列がshに渡るんだから
mkdir foo; mkdir bar だろう。

つーかそんなことしなくても、
mkdir foo bar でいいだろう。

556 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:35:50 ]
>>555
最新5レスしか読めない携帯からのご参加ですか?

557 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:38:56 ]
>>555
mkdir したいって話じゃねーだろ

>>553
Windowsではでっかいひとつのスクリプトとして実行するしかなさそうだな

558 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 11:39:43 ]
つーか、全部シェルスクリプトで書けば?
system "foo.sh"
したらいいやん

559 名前:540 mailto:sage [2008/12/17(水) 12:15:12 ]
>>542
初心者にはメソッドチェーンが読みにくいかもしれない、とは思ったけど
読み解くのも勉強になるだろうと思ってそのまま書いた
grep と system(*args) は知らなかったから書き直すよ

target = 'D:/desktop/*'
filter = /\d+test.txt/
command = 'start'
system(*Dir.glob(target).grep(filter).unshift(command))

560 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 14:15:15 ]
>>559
>system(*Dir.glob(target).grep(filter).unshift(command))
なぜわざわざunshiftを使うのか分からん。>>544の通りに
system command, *Dir.glob(target).grep(filter)
でええやん。

561 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 14:34:26 ]
すっごい前に、配列からの抽出にpopとshiftを使う子がスレにいたな
キューじゃないものに pop とか使ったらダメよ混乱するから

562 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:00:35 ]
>>530
RubyのselectはSQLのselectじゃなくて
Smallltalkのselectに由来するって知ってるか?


563 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:09:54 ]
>>561
普通に使ってるし、混乱するって話もあまり聞かないぞ
そもそもpopやshiftを使わないとすると、代わりにどんな風に書くんだ?



564 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:14:58 ]
>>562
「外来語」の detect と select で悩むくらいなら find と find_all を使うなあ、俺は
というかなんでそこで SQL が出てくるんだ?

565 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:21:17 ]
当時の様子は知らないし、同じくキューでない配列にも普通にpop/shiftは使うけど
配列から取り除くことが作用ではなく副作用になる場合以外、
「配列から取り除く(ついでに値を得る)」ではなく
「値を得る(ついでに取り除く)」だと思ってるとミスするという話かと。

def get_first(ary)
 ary.shift
end
ary = [1,2,3]
put get_first(ary) # aryが破壊される


566 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:35:31 ]
>>563
同意
queue じゃなくても、popもshiftも使うよな

567 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:38:04 ]
キューでもないのにpopが積極的に必要になる場面が思いつかない
イテレータ拒絶派か何かか?

568 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:42:26 ]
>>567
split結果の先端や終端にゴミついてるのが確実なときに切り落とすためとか。

569 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:55:45 ]
>>568
delete_at(0)


配列先頭のデータが欲しいときに

data = arr.delete(0)

と書くのが奇妙なのと同程度には

# 先頭は不要
arr.shift

と書くのは奇妙だと思う
shift に関してはコマンドライン引数を順に扱うときに shift コマンドを使った経験が後を引いてるのかもしれないが、
ここは Ruby だし shift は変

570 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 15:57:55 ]
そろそろ誰の何の質問の答えているのかはっきりさせようか

571 名前:デフォルトの名無しさん [2008/12/17(水) 15:58:58 ]
じゃあどう書けばRuby的なの?

572 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 16:19:46 ]
配列を破壊しなければうまくいかないかどうかによって違うんじゃね

573 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 16:19:54 ]
>>570
>質問・要望・雑談などどうぞ。

>>569
奇妙なのはそのコメント文だろうw
代入操作がないことから不要なことは自明。
返値があるものは代入しないといけないなんてルールはないし。

>>565のように先頭や末尾の要素を配列から取り除くのが主の操作で、
popやshiftにそれ以上の意味(=キュー専用)はないと考えてる。
だからdelete_at使えというのは、firstやlastもat(0)やat(-1)にしろと
言っているように聞こえる。

キューでない配列に対してpopやshiftがよろしくないなら
Array#pop #shift #push #unshiftは廃止してQueueクラスを用意するべき。
運用で制限しようとするほうがおかしい。
(threadのものと名前がかぶるけどそれはさておき)




574 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 19:49:45 ]
難しく考えたことねえな

ところでその考え方だとpopはキューに使っちゃダメだろ
あれはスタックに使うものでは?

575 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:13:20 ]
>>569
切り捨てるより、shiftで切り出された結果を使う方が多い

param = ARGV.shift
line = lines.shift

とか

576 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:39:05 ]
each でブン回すのが Ruby 的ではあるんだろうな

577 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:54:01 ]
>>574
push⇔shift
unshift⇔pop
これでキューが出来上がる。ただし左がエンキュー、右がデキュー

578 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 21:59:30 ]
素直にQueueクラス作れよ、というのは昔から言われてはいたな
というか、説明もないしキューの概念知らない人もそこそこいるのでは

579 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:02:02 ]
unshiftだけ遅いから注意が必要

580 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:26:23 ]
unshift遅くなくね?

581 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 22:33:43 ]
>>578
自慢だが知らん
popやshiftは配列から1個取る便利メソッドだと思ってる

582 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:47:16 ]
>>531
丁寧な解説をありがとうございます。
Rubyの「オブジェクト指向」という考え方が何となく判って来た気がします。

つまり、文字列などの何らかのデータをオブジェクトとして扱い、
その内容に変更を加えたデータ(や当該コード)もオブジェクトにでき、
更にそのオブジェクトに変更を加えたデータも・・・・・
という事が限りなくできる、ということなんですね。
つまり「全てがオブジェクト」なんですよね?

そして、そのあらゆる段階でのオブジェクト(データ)に自分で名前を付けることによって、
任意の段階でのデータ(オブジェクト)をコードのどこでも簡単に使い回しできるようにしたものが、
Rubyのオブジェクト指向、だと理解しました。

そして、初心者が常に気を付けるべき点は、
データを処理するためのメソッドが「どのオブジェクトを対象としているのか」という点にある、
というのが>>531でのアドバイスの要点だと思いました。

基本的な理解はこれで合っているでしょうか? (^^;)

583 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 23:53:26 ]
Rubyは肯定(否定)戻り読みには対応していないんでしょうか?
肯定(否定)先読みには対応しているようですが。
使っているエディターがPerl準拠の正規表現なので
今までは戻り読みが使えて便利だったのです。



584 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:02:13 ]
lookbehind は鬼車が要るはず

585 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:29:31 ]
>>580
a = []; 50000.times { a.push(0) }

a = []; 50000.times { a.unshift(0) }
を比べてみな

586 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:33:16 ]
yield

587 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:57:28 ]
>>584
ほほう。こういうものがあるんですね。
次期Rubyに搭載予定だそうで凄そうです。
それで鬼車のホームページには、

>* 5.xはUnicode Property/Scriptを提供
>* 2.xはRuby1.6/1.8組込みライブラリとして動作する。 (2006年末で保守を終了)

と書いてありますが、どちらをインストールしたら良いんでしょうか。
詳しい方がいらっしゃったら御教示願います。

588 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 08:51:32 ]
>>580 じゃないが、試してみて >>585 の優しさを知った。
50000 は絶妙なとこだな。(celeron 1.3GHz)

589 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 09:31:25 ]
そんな中古でも売ってないような激遅CPUで話にしゃしゃり出られても困る

590 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 09:47:36 ]
今の平均的なCPU速度ってどのくらいなのかね
自分でちょっと重い処理するライブラリとか公開したときちょっと気になる

591 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 09:51:40 ]
>>589
Core2Duoでも相当差が付くぞ

592 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 09:59:23 ]
>>589
そのご立派なCPUで500000とか試してみなよ。

593 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 10:05:52 ]
噛み付かれた>>588カワイソス



594 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 10:09:49 ]
>>590
2GHzくらいじゃね

595 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 10:17:43 ]
てかPentium4からこっちはよくわからん理由で処理速度が違うから周波数アテにならん

596 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 11:26:59 ]
公開するライブラリの重さなんて気にしなくてもいいんでは?
使う人次第で負荷なんて桁で変わるんだし。

軽く使えるノウハウでもついでに書いとけば喜ばれると思うけど。

597 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:02:34 ]
RubyのArrayはリストとかじゃなくてまんま配列なので、
pushと違ってunshiftは必ずメモリのコピーが発生するから
ってことかな>速度差

598 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:34:38 ]
IronRubyって終わったんでしょうか?

599 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:12:50 ]
>>587
どちらもインストールしないでrubyの1.9.1をインストールする。
まだリリースされてないけど。

600 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:13:58 ]
>>598
終わったというか、まだ始まってない。
そもそもIronRubyの動作基盤であるDLRがまだリリースされてないし。

601 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:19:49 ]
Ruby で「静的 HTML に変換して出力してくれる入力テンプレシステム」って何がありますか?
* で始めると見出しとか、 - で始めるとリストとか、そういうので適当な日記的 HTML を楽に書きたいです
日記や Wiki みたいな動的機能はいらないです
サーバにアップロードするときに Ruby スクリプトで変換して FTP するとか、そんな感じなんですが

602 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:36:51 ]
RD

は死んでる?
gem でイイのないもんかね

603 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:41:45 ]
Hiki に Wiki 書法用のパーサが付いてたような気が



604 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:42:53 ]
WikiCreoleパーサをさがしてみるといいんじゃないか?
あるかどうか知らんけど。

605 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 15:48:25 ]
RedCloth とか BlueCloth とか。
日本語がちゃんと扱えるかどうかは知らないけど。

606 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 16:08:25 ]
つWikiforme
使いやすいとは言えないがかなり面白い。
これとTenjin組み合わせれば・・・とか妄想してる。

607 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 16:09:43 ]
rake で sh "command" としたときに、command が画面に表示されないんですが、そんなものでしょうか。
どんなコマンドが実行されているか表示されてほしいんですけど。

608 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:18:08 ]
Installing ri documentation
Installing rdoc documentation

これでバカみたいに遅いのはなぜ?
中で何やってこんなに遅いの?

609 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:21:52 ]
ソースコードを解析してドキュメントを作ってるから、だと思う。多分

610 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:29:06 ]
ファイルが細かくて多いと死ヌほど時間かかる印象

611 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:30:06 ]
あれってなんで事前作成してないんだろ。
環境によって出力結果変わったりするもの?

612 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:31:55 ]
>>611
できるものがでかいから。

613 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:35:48 ]
まあつまりファイルサイズをケチってるわけだな
実際のドキュメントを見るとわかるがまあ結構デカい

デフォルトデザインのドキュメントくらい添付してもいいと思うんだが、
まあ、全パッケージの全バージョンを保持してるわけだし、
それぞれに2種類のドキュメントをさらに保持というのは確かに辛いかもしれず



614 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 17:53:36 ]
回答サンクス。でも所詮は圧縮効率よさげなテキストでしょ。
パッケージはgzipとかしてるだろうし、試しにzipアーカイブに・・・

rubygems-1.3.1/rdoc/ 2,425,167byte -> zipped 820,211byte

把握したw

615 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 18:16:02 ]
余裕じゃん

616 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 18:45:30 ]
>>603
HikiDocか。

>>601
Hikiのは古いから、HikiDocでぐぐって(単体で保守されてる)
あとはRakeと連携して細かいところを自分で書けばおっけーじゃね。

617 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 19:17:03 ]
>>601
Marukuもあるよ
高機能な割に、いまいち安定しないが

618 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 19:26:32 ]
>>611
>あれってなんで事前作成してないんだろ。
事前に作成できるよう指定できるよ。
ようは各gem作者がそれを指定してないだけ。

619 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 20:10:37 ]
>>599
鬼車のを今の1.86で組み込んで使うことはできないんでしょうか?
戻り読みの正規表現が使えないと非常に困るのです。

ネットで調べたら「VC++で鬼車をコンパイル云々」と出て来ましたが、
プログラミングはRubyから始めたばかりなので、
別のプログラムが必要とかになるとお手上げなのです。

何とかならないものでしょうか。鬼車の2.x系で構わないので。

620 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 20:18:19 ]
鬼車を使うか旧来のregexエンジンを使うかはコンパイルオプションで
決まっちゃうので、自分でコンパイルがお手上げなら、鬼車を有効に
してあるバイナリを探すしかない。あるかどうか知らないけど。

駄目ならRubyでやるのを諦めるしかないと思うけど。

621 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:13:29 ]
鬼車gemもあるな。
リテラルの/.../だと組込の正規表現クラスを使ってしまうので、
全部明示的にメソッド呼んで組み立てる必要があるが。


622 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:29:29 ]
gem のライブラリのファイルをどこで誰が読んでるかを調べる方法はある?

gem 'package_name', '=1.0.0'

でバージョンを指定してるはずなんだけど、

/usr/lib/ruby/1.8/rubygems.rb:142:in `activate':
can't activate package_name (>= 1.0.1, runtime),
already activated package_name-1.0.0 (Gem::Exception)

という例外が出て動作しない
1.0.0 を指定してるんだから 1.0.0 だけ読んでくれよ
っていうかバージョン指定でインストールさせるライブラリの作者は安易に require だけすんな氏ね

623 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:32:02 ]
>>620
レスありがとうございます。
戻り読みが使えないのは大変に困るので、
素人でもコンパイルと言うものができるなら挑戦してみようと思います。

ええと、ネットで調べたのですが、
Rubyと鬼車のソースを手に入れて解凍し、
鬼車の解凍フォルダをRubyの解凍フォルダに入れて、
Visual C++ Toolkit 2003 Commandでコマンドを入力してコンパイル

で、基本的な流れは良いんでしょうか。
鬼車を組み込むために特別なことは必要ないのでしょうか?

>>621
できれば他の正規表現と全く変わらないように使いたいので、
鬼車を組み込んだRubyの方がありがたいのです。



624 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 21:39:26 ]
>>623
なんかすごいことしようとしてるなー

ちなみに、その戻り読みが必要な正規表現ってどんなの?
もしかしたら、戻り読みが必要ないかたちに書き換えられるかもしれないし。

625 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 22:13:45 ]
>>624
> なんかすごいことしようとしてるなー

そんなに素人には敷居が高いのでしょうか?
確かに戻り読みは全ての正規表現に使うわけではないので、
>>621さんの鬼車gemというのを使った方が良いのでしょうか。

626 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 22:17:53 ]
たぶん、
Object.const_set('Regexp', ORegexp)とかしてしまえば(警告出る)、
Regexp.newで作った後は同じように使える(と思う)から、
/.../と書けない以外はそれなりに使えるんじゃないだろうか。


627 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 22:18:01 ]
コンパイルとか一回やっとくと後々役に立つこともあるだろうから
やっといてもいいと思うけど。
Cygwinじゃダメなの?

628 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 22:58:02 ]
>>607
-v

629 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:06:19 ]
>>623
「鬼車を組み込むために特別なこと」は鬼車のドキュメントに書いてある。
それに従えば大丈夫だと思うよ。

630 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:48:15 ]
「ひらがな ←→ カタカナ」の変換ってどうやるんでしたっけ。

631 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 23:56:38 ]
>>630
Ruby単体では難しいな
NKFに頼るのが妥当か

632 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:01:56 ]
プログラムのlogを自分宛にメールで送りたいと思ったんだがpop before smtpってよくわからん
○行処理完了,×行目失敗,△行目失敗...ぐらいのちょっとしたものなのに

633 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:05:43 ]
>>632
そのまんまだよ
smtpの前にpopでただアクセスすればいい
履歴はサーバが短時間記憶してくれているから普通にsmtpでアクセスだ

メール関連は詳しく説明するとSPAM送るアホが出るからどこも親切にはしてくれないだろうね



634 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:15:20 ]
>>631
サンクス

635 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:51:58 ]
>>630-631
一方向の変換ならString#trじゃダメ?

636 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:48:35 ]
aという配列の要素に、正規表現でキャプチャした値を入れたいです。
具体的には
a[0]=$1
a[1]=$2
以下同様です。
これを
0.upto(4) do i
 a[i]=$(j+1)
end
とかやってもコンパイルエラーがでてしまうのですが、組み込み変数$1,$2・・・に
イテレータを利用してアクセスできる方法はありますか?

637 名前:636 mailto:sage [2008/12/19(金) 09:49:51 ]
>>636は書き間違いました。
a[i]=$(i+1)
です。

638 名前:636 mailto:sage [2008/12/19(金) 09:54:02 ]
自己解決しました。
0.upto(4) do i
 a[i]=$~[j+1]
end
でいけました。一人で何やっとるんだ俺は。

639 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 09:56:11 ]
自己解決ハヤスw

640 名前:636 mailto:sage [2008/12/19(金) 09:59:49 ]
>>638は書き間違いました。a[i]=$~[i+1]です。もう俺は死ね。

641 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:06:44 ]
萌えた

とりあえず a = $~[1..-1]

642 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 10:07:51 ]
$~.capturesオススメ

643 名前:641 mailto:sage [2008/12/19(金) 10:10:44 ]
1.8から追加された便利メソッドか。老害の俺も死んでくる



644 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:00:36 ]
もちつけ >638

645 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 11:53:42 ]
>>631
NKFにそんな機能あったっけ?
ていうか、ひらがな←→カタカナなら
str.tr 'あいう(略)アイウ(略)', 'アイウ(略)あいう(略)'
でどうだろう。「ヴ」をどうするかとか問題はあるけど。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<244KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef