Ruby 初心者スレッド ..
[2ch|▼Menu]
378:デフォルトの名無しさん
09/09/27 01:20:21
>>377
まさかと思って調べたところ、RawDeflateと普通のDeflateが違うものでした。
考えが及びませんで、ありがとうございました。
RawDeflateにchecksumなんかが頭についたものがDeflateのようで、以下のようにしたら動きました。
p Zlib::Inflate.new(-Zlib::MAX_WBITS).inflate(data.unpack('m')[0])

379:デフォルトの名無しさん
09/09/27 03:45:29
配列の中にハッシュ入れたんですけど
a = [0, {1 >= 5}, 3]
これの配列データがFixnumかハッシュかどうかで処理を分けたいんですが
is_a?(Fixnum)で分岐させようとしたらエラーが出ました
classで調べたらエラーが出ます
どうすればいいんでしょうか?

380:デフォルトの名無しさん
09/09/27 03:56:08
{1 >= 5} でエラーという落ちじゃないだろうな
ちょっとコードをはってみろ


381:379
09/09/27 04:07:10
class hogehoge
def mastery_open_flag
MASTERY_ARRAY::HASH_DATA[1].each{|i|
open_flag = true
if MASTERY_ARRAY::HASH_DATA[1][i].is_a?(Fixnum)
MASTERY_ARRAY::HASH_DATA[1][i].each{|index, level|
unless @actor.mastery_level_data[index] >= level
open_flag = false
end
}
if open_flag
@actor.mastery_open_data[i] = true
end
end
}
end
end

エラーはTypeErrorで
cannot convert Hash into Integerと出ます

382:379
09/09/27 04:08:30
module MASTERY_ARRAY
HASH_DATA[1] = [
0, 0, {0 => 5, 1 => 3}, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
]
end
モジュールの配列です。

383:デフォルトの名無しさん
09/09/27 04:19:58
どの行でそんなエラー出てるんだい

384:379
09/09/27 04:28:48
if MASTERY_ARRAY::HASH_DATA[1][i].is_a?(Fixnum)
ここです
配列のインデックス2のハッシュ読もうとしたら出ます

385:デフォルトの名無しさん
09/09/27 04:35:08
mastery_open_flag の MASTERY_ARRAY::HASH_DATA[1].each{|i| ... } の i に hash が
きてるからだろう。
i = {0 => 5, 1 => 3}
if MASTERY_ARRAY::HASH_DATA[1][i].is_a?(Fixnum)
状態で配列のインデックスにハッシュをブチ込んで、
整数に変換できないよエラーになってる。eachの i にインデックスが入ると勘違いしてない?

386:デフォルトの名無しさん
09/09/27 04:38:30
URLリンク(www.ruby-lang.org) の each と each_index をよく読むといい
って、eachの例がeach_indexの結果と区別つきにくいね…1,2,3じゃない例つかえばいいのに


387:379
09/09/27 04:40:24
あーそういうことですか
インデックス入らないと困るんですが
何かうまい書き方ありますか?
とりあえず考えてみます
あったらお願いします
ありがとうございました

388:デフォルトの名無しさん
09/09/27 04:47:09
each {|要素| ... }
each_index {|インデックス| ... }
each_with_index {|要素, インデックス| ...}


389:デフォルトの名無しさん
09/09/27 04:49:28
用件は「要素が整数であること」なんだろうか
「要素がハッシュであること」なんじゃなかろうか

MASTERY_ARRAY::HASH_DATA[1].each{|e|
open_flag = true
if e.kind_of?(Hash)
e.each_pair{|index, level|
open_flag = false unless @actor.mastery_level_data[index] >= level
}
end
@actor.mastery_open_data[e] = true if open_flag
end

390:379
09/09/27 04:58:13
おーすごいさすがプログラム板
each_indexで動きましたありがとうございます
389さんが書いたとおり「要素がハッシュであること」が評価の大筋です
kind_of?(Hash) これは知りませんでした
なんとかいけそうですありがとうございました


391:デフォルトの名無しさん
09/09/27 05:02:31
>>389
@actor.mastery_open_data[e] = true の e は each_with_index の i だと思う
要はナントカデータは全部要素数 100の配列なんだろう
マス目みたいに決まっててアクセス手段がインデックスしかないんだ

MASTERY_ARRAY::HASH_DATA[1].each_with_index{|e, i|
open_flag = true
e.each_pair{|index, level|
open_flag = false unless @actor.mastery_level_data[index] >= level
} if e.kind_of?(Hash)
@actor.mastery_open_data[i] = true if open_flag
}

392:デフォルトの名無しさん
09/09/27 13:24:58
Win32で一文字入力してすぐ制御を返すサンプルないですか?

393:デフォルトの名無しさん
09/09/27 13:44:36
Curses.getch は?

394:デフォルトの名無しさん
09/09/27 18:44:37
ありがとう。
Winにもcursesってあるのか。

395:デフォルトの名無しさん
09/09/27 18:53:34
>>394
普通に導入可能だよー

396:デフォルトの名無しさん
09/09/27 21:22:24
rubyでCGIの勉強しようとおもって
lighttpdをインストールしました。

ところが、設定方法がわからず、htmlは表示出来るのですが
cgiが動きません。涙目状態です。あちこちググりました・・・
途方にくれています・・・

397:デフォルトの名無しさん
09/09/27 21:25:08
mongrelをいれるといいよ

398:デフォルトの名無しさん
09/09/27 21:26:57
力になっちゃあげたいけど、スレ違いかな・・・
WebProg板か、どっかにLighttpdのスレがあるから、そこで質問したらいいよ

399:デフォルトの名無しさん
09/09/27 21:28:09
SocketってライブラリがあるからそれでWebサーバ書くのがいいと思うな

というか環境や参考にしたページをどこまで試してどこで詰まったとか
そういうのも無しに答えられるわけないので

400:デフォルトの名無しさん
09/09/27 21:30:33
それが無いこと自体が答だろ
つまり、サーバ立てる知識が無い

401:デフォルトの名無しさん
09/09/27 21:32:26
>>398
lighttpdのスレは先に見ました。最終書き込みが8月、その前が6月くらいと
人の気配が感じられませんでした・・・

402:デフォルトの名無しさん
09/09/27 21:36:43
どう転んでもWebサーバの挙動の知識は必要になるわけなんだし
普通にゼロから勉強したほうが早いんだけどね

403:デフォルトの名無しさん
09/09/27 21:36:52
Linuxなら各ディストリの初心者スレにいけば、誰かが教えてくれそう。

404:デフォルトの名無しさん
09/09/27 21:40:14
>>402
まったくだぬ

「WebサーバやHTTPはお着せとコピペで済ませて本題のRubyの学習をしよう」というのは
CGI関連に限ってはありえん

405:デフォルトの名無しさん
09/09/27 21:44:58
>>404
翻訳しながら、lighttpdの本家のページ見てみます。
mongrelも検討してみます。

apacheの設定よりは、ずいぶん楽そうに見えたんですが。。

406:デフォルトの名無しさん
09/09/27 21:47:26
中途半端にマイナーなサーバソフトウェアだと情報が全くないということはばしばしある
めっちゃメジャーなのを小規模で使うのが結局マシだったりすることは意外と多い

407:デフォルトの名無しさん
09/09/27 21:50:40
自分用WebサーバはApacheを接続数とか1人用に絞って使うのが一番だという結論になった

408:デフォルトの名無しさん
09/09/27 21:50:52
>>396はどう動かないか書いていないから誰も助けようがないよ。
cgiがどう動かないのさ。スクリプトを貼ったりしろよ。

409:デフォルトの名無しさん
09/09/27 22:02:07
Apacheの方が情報多いのに。

410:デフォルトの名無しさん
09/09/27 22:03:40
>>408
/var/wwwがドキュメントルートディレクトリで、ここに1.html
/usr/lib/cgi-binがcgiディレクトリに、1.cgi

1.htmlで、action=/usr/lib/cgi-bin/1.cgiと記述。

ブラウザで、localhost/1.htmlを表示。ボタンを押すと
404 not foundとなります。

lighttpd.confでのcgiディレクトリ指定が間違ってるんかなぁと・・




411:デフォルトの名無しさん
09/09/27 22:13:48
ログをまずは見ようぜ。
1.cgiに実行権限がついているかとか1.htmlの読み込み権限とかもチェックしような

412:デフォルトの名無しさん
09/09/27 22:15:53
action=/usr/lib/cgi-bin/1.cgi っておかしいだろ… lighttpd とかにかかわらず
/usr/lib とか公開するとは考えにくいから action=/cgi-bin/1.cgi とかなんじゃないのか
この調子じゃ権限とかもだめそうだな

413:デフォルトの名無しさん
09/09/27 22:31:01
>>396
RubyでCGIの勉強をするなら、lighttpdから始めるのはオススメしない
cgi.rbを使って、WEBrick上 or Apache上で動かしてみるとか
Sinatra使うとかしたほうがいい

414:デフォルトの名無しさん
09/09/27 22:40:09
>>411
chmod 755はしてあります。

>>412
あ、cgi-binでいいんですね。フルパスにしちゃいました。
たしかに公開しないですもんね。

415:デフォルトの名無しさん
09/09/27 22:52:59
ファイルの所有者も確認しような
lighttpdを起動したユーザがownerだよな?

416:デフォルトの名無しさん
09/09/27 22:55:57
式がnil, false, 0なら偽になるif文てないの?

417:デフォルトの名無しさん
09/09/27 23:06:09
>>415
ファイルオーナーが、「root」ですね
lighttpdは、「www-data」が起動してます

sudo cpでファイルを/usr/lib/cgi-binにコピーすると
所有者が、ルートになってしまいます。

ちょっと、apacheや他のを調べてみます。みなさん、スレ違いに付き合って
くださって申し訳ありがとうございまsyた

418:デフォルトの名無しさん
09/09/27 23:18:45
>>416
!x || x== 0

'' や [] や {} も偽にしたいならActiveSupport入れてblank? と present?
を使え。



419:デフォルトの名無しさん
09/09/27 23:23:03
>>418
それだとnil, false, 0で真になるんだけど。偽がほしいんですが無理なんですか?

420:デフォルトの名無しさん
09/09/27 23:29:26
x && x != 0
どんだけ応用力ないのかな…

421:デフォルトの名無しさん
09/09/27 23:33:29
いかにも落とし穴がありそうだと漏れのアンテナが反応しております

422:418
09/09/27 23:35:35
すまん逆転させるのわすれてた。てへ。



423:デフォルトの名無しさん
09/09/27 23:49:22
>>417
ファイルの権限を777にして実行してみな。
それで実行できれば権限関係の設定がおかしかったってことだ
linuxの基礎を勉強私的な。

424:デフォルトの名無しさん
09/09/28 10:48:55
Digest::MD5.digest の値を hexdigest に変換する計算式を教えてください。

convert(Digest::MD5.digest(value)) == Digest::MD5.hexdigest(value)

となるようなconvert()です。
あるいはヒントでもいいのでお願いします。


425:デフォルトの名無しさん
09/09/28 10:59:18
そのへんはさすがにマニュアルにも書いてあるだろ
> 与えられた文字列に対するハッシュ値を、ASCIIコードを使って 16進数の列を示す文字列にエンコードして返す。

ということで
irb> p Digest::MD5.digest('12345')
"\202|\313\016\352\212plL4\241h\221\370N{"
irb> p Digest::MD5.hexdigest('12345')
"827ccb0eea8a706c4c34a16891f84e7b"
irb> p Digest::MD5.digest('12345').unpack("H*")[0]
"827ccb0eea8a706c4c34a16891f84e7b"


426:デフォルトの名無しさん
09/09/28 11:12:25
>>425
ありがとうございます。
1バイトずつ16進数に変換するということなので、こう理解しました。

irb> Digest::MD5.hexdigest('foo')
=> "acbd18db4cc2f85cedef654fccc4a4d8"
irb> Digest::MD5.digest('foo')
=> "¥254¥275¥030¥333L¥302¥370¥¥¥355¥357eO¥314¥304¥244¥330"
irb> Digest::MD5.digest('foo').unpack('C*') # 1バイトずつに分解
=> [172, 189, 24, 219, 76, 194, 248, 92, 237, 239, 101, 79, 204, 196, 164, 216]
irb> Digest::MD5.digest('foo').unpack('C*').collect{|c| '%x' % c } # 16進数に変換
=> ["ac", "bd", "18", "db", "4c", "c2", "f8", "5c", "ed", "ef", "65", "4f", "cc", "c4", "a4", "d8"]
irb> Digest::MD5.digest('foo').unpack('C*').collect{|c| '%x' % c }.join == Digest::MD5.hexdigest('foo')
=> true

なるほどー。
どうもでした。


427:デフォルトの名無しさん
09/09/28 20:26:36
Dir.foreach('hoge'){|filename|
filename.match(/(aaa)(bbb)/}
print $1
}

この状況で、$1や$2の情報を配列に入れるにはどうすればいいですか?
具体的にはこの後、$1の内容について一つ一つ処理をしていきたいんです。

428:デフォルトの名無しさん
09/09/28 20:39:11
ary = []
Dir.foreach('hoge'){|filename|
filename.match(/(aaa)(bbb)/}
ary << [$1, $2] # もしくは ary << $1 << $2
}
p ary

429:デフォルトの名無しさん
09/09/28 20:47:13
filename.scan(/(aaa)(bbb)/)

430:デフォルトの名無しさん
09/09/28 20:51:17
>>428
「<<」ってこういうところで使うんですね。
勉強になりました。ありがとうございました!


431:デフォルトの名無しさん
09/09/29 00:50:52
rubyを使ってgnuplotで簡単にグラフを書きたいんだけど、
何かお勧めありますか?

432:デフォルトの名無しさん
09/09/29 08:15:40
h = YAML.load_file(path)
@username ||= h[:user]||h[:username]||h[:id]||h['user']||h['username']||h['id']
@password ||= h[:pass]||h[:password]||h['pass']||h['password']

イライラ

433:デフォルトの名無しさん
09/09/29 12:52:20
エディタから編集中のRubyのスクリプトを独立したウィンドウ、ターミナルで起動したい
エラーがあったらエディタがそれを取り込んでタグジャンプしたい
teeやら別のモジュールをrequireするのはなるべく避けたい
もちろんユーザーはputs/getsを制約なく使いたい

といううまいやり方ってないですか?
ようするにエラーが出たらそれだけをログファイルに書き込んでrubyは終了コード1を返したいです
標準エラーをファイルに書き込むようなファイルをこっそり-rするのが現実的なんですかね

434:デフォルトの名無しさん
09/09/29 13:06:42
>>433
Emacs使え

435:デフォルトの名無しさん
09/09/29 13:10:50
標準の ruby-mode で M-x run-ruby で Emacs 内に irb 開いて
M-x ruby-load-file → Enter すれば irb でファイルが実行されるな

エラー行ジャンプはどうしようか

436:デフォルトの名無しさん
09/09/29 14:56:39
>>432
>h = YAML.load_file(path)
>@username ||= h[:user]||h[:username]||h[:id]||h['user']||h['username']||h['id']
>@password ||= h[:pass]||h[:password]||h['pass']||h['password']

YAML使ってるなら、キーは文字列になるだろうから、Symbolは考えなくていいんじゃないかな。
YAMLでわざわざSymbolをキーに使うとは考えにくい。

@username ||= h['user'] || h['username'] || h['id']


437:デフォルトの名無しさん
09/09/29 19:21:13
1万PVのPHPで作られたサイトをRuby(ROR)かScala(Lift)どちらかを使って
バージョンアップしようと計画していますが、どちらがお勧めでしょうか?

TwitterもRubyからScalaへ書き換えたりしていますので...

438:デフォルトの名無しさん
09/09/29 19:28:02
問題ないならPHPのままにしておく

439:デフォルトの名無しさん
09/09/29 19:33:59
scalaって日本でも実績あるの?

440:デフォルトの名無しさん
09/09/29 20:17:30
1万PVって何かを説明してるように見えて、実際はまったく説明してないよなあ。
開設以来10年で1万PVなのか、毎秒1万PVなのか。

441:デフォルトの名無しさん
09/09/29 20:21:10
>>434-435
特定のエディタの話はしてないんだけど…

442:デフォルトの名無しさん
09/09/29 20:22:53
一応、単位としては1日か1ヶ月かのどっちかだな
1日1万PVならコンテンツによってはまあ普通
1ヶ月1万PVなら内容によっては閉鎖したほうがエコ
どっちにしてもPHPで動いてるならPHPで増強したほうがきっと楽だ

443:デフォルトの名無しさん
09/09/29 20:24:12
>>441
だからEmacs使えって
どうせ使いもしないで脳内で考えてるんだろ

444:デフォルトの名無しさん
09/09/29 20:28:12
エディタの布教は余所でやれ。

445:デフォルトの名無しさん
09/09/29 20:32:33
求めること全部できるんだから仕方あんめえ
エディタとして動作するものではEmacs以外ではgvimかPeggyくらいしか心当たりがない
どう動作するのが効率いいかの研究もEmacsの動作見れば丸分かりだ

446:デフォルトの名無しさん
09/09/29 20:35:49
特定のエディタじゃなくて何を求めてるんだ
どんなエディタでも連携して動く万能スクリプトが欲しいのか

447:デフォルトの名無しさん
09/09/29 20:38:44
>>446
たぶんそうだと思う
エディタ内でシェルを起動するのでなければ
emacsclient みたいなシステムがないと無理だと思うんだけどね

というか、できないからこそ数十年かけて Emacs が M-x compile を進化させてきたのではないんかのう

448:デフォルトの名無しさん
09/09/29 20:43:52
うん、Emacsのとか使ってれば「Rubyは特に関係ない」ということにすぐ気づけたはずなのに
コンパイラ等が異常終了コードをシェルに返してエラー行を標準出力などに表示さえしてくれれば用は済む

449:デフォルトの名無しさん
09/09/29 20:45:04
$stderr.reopen($0 + ".errorlog")


450:デフォルトの名無しさん
09/09/29 20:54:21
>>442
単純にPVって言ったら普通に日単位だろ
何この馬鹿

451:デフォルトの名無しさん
09/09/29 23:38:21
>>437
>1万PVのPHPで作られたサイトをRuby(ROR)かScala(Lift)どちらかを使って
>バージョンアップしようと計画していますが、どちらがお勧めでしょうか?

どういう理由でバージョンアップしようとしているのかがわからないので、答えられる人はいないでしょう。
パフォーマンスが理由ならRoRはイバラの道だし、開発効率が理由ならLiftはイバラの道。
どちらの道を選んでもイバラの道だと思うので、PHPのまま改善することをお勧めします。
あるいはPythonを使ってGoogleAppEngineにするとか。これもイバラだな。


452:デフォルトの名無しさん
09/09/29 23:47:46
railsは慣れてしまえば今までの開発が馬鹿に思えるぐらい楽になる

453:デフォルトの名無しさん
09/09/29 23:49:40
日に1万PV程度なら、サーバ丸1台あればRoRでも余裕だよ。
下手するとキャッシュなしでもいけるくらい。

454:デフォルトの名無しさん
09/09/30 00:35:22
そりゃ1日8万秒以上あるんだから言われなくても分かる

455:デフォルトの名無しさん
09/09/30 06:13:47
結局ピーク性能が足りるかどうかだよな。

456:デフォルトの名無しさん
09/09/30 08:24:47
そして既存のPHP+サーバではおそらく足りてるわけであって、
現時点で言えることは「じゃあPHPでやっとけ」にしかならんという

457:デフォルトの名無しさん
09/09/30 10:56:30
でも結局ピーク性能が足りるかどうかだよ。

458:デフォルトの名無しさん
09/09/30 11:42:46
おいちょっと待てよ、ピーク性能が足りてるかどうかが問題だろ

459:デフォルトの名無しさん
09/09/30 11:46:40
WebProg板に帰れ

460:デフォルトの名無しさん
09/09/30 12:24:24
1ヵ月1万PVwww

461:デフォルトの名無しさん
09/09/30 12:57:50
いや、ここはピーク性能が足りるかどうかが肝だろ。

462:デフォルトの名無しさん
09/09/30 18:46:43
全角の数字を半角にしようと下記のフィルタつくったんだけど
変換されないで、元の値が戻ってくる。
何が間違ってるか教えてください。
使う文字コードはUTF-8です。

#全角数字を半角数字に変換するフィルタ
def zen_to_han_int(str)
    outstr = str.gsub(/0/,"0")
    outstr.gsub!(/1/,"1")
    outstr.gsub!(/2/,"2")
    outstr.gsub!(/3/,"3")
    outstr.gsub!(/4/,"4")
    outstr.gsub!(/5/,"5")
    outstr.gsub!(/6/,"6")
    outstr.gsub!(/7/,"7")
    outstr.gsub!(/8/,"8")
    outstr.gsub!(/9/,"9")
    return outstr
end


463:デフォルトの名無しさん
09/09/30 18:52:32
>>462
str とスクリプトファイルの文字コードが合ってない
ごく一般的には str とスクリプトの正規表現リテラルの文字コードは同一にする

…あーつまりスクリプトのファイルが UTF-8 じゃないか str が UTF-8 じゃないか
あるいは ruby -Ku のような実行指定をしてないかどれか

464:デフォルトの名無しさん
09/09/30 18:53:19
今はじめて気がついたけどメイリオって数字が全角と半角全く同じに見える。きめぇw

465:デフォルトの名無しさん
09/09/30 18:54:43
def zen_to_han_int(str)
p "yes!" if /0/ =~ str
end

これで 0 を含む文字列渡したときに "yes!" と表示されなければ>>463

466:デフォルトの名無しさん
09/09/30 20:10:23
むしろ、メイリオになってから、半角全角混同さんが気にならなくなりました ^p^

467:デフォルトの名無しさん
09/09/30 20:12:28
やっとWindowsに標準添付された真の意味での表示用のフォントだからな
表示されるぶんには全角半角の区別がある意味は何もないわけで

つまり区別が必要な人は使ったら駄目よ

468:デフォルトの名無しさん
09/09/30 20:25:22
>>463-465
見直したら、スクリプトがS-JISでかかれてました。
$JCODE = "UTF-8"
ってやってもだめなのね

もうひとつ、お願いします。

#数字に変換できるか
def intrger_string?(str)
    begin
        Integer(str)
        return true
    rescue ArgumentError
        return false
    end
end

Rubyレシピブックのまるぱくりなのですが
3桁の先頭に0を含む文字列を渡すとfalseになる場合があります。
例えば078から099までのあいだとか
これも原因が良くわかりません。
どなたか教えてください。

469:デフォルトの名無しさん
09/09/30 20:30:25
>>468
8進数

470:デフォルトの名無しさん
09/09/30 20:30:28
該当メソッドのマニュアルくらい読め
URLリンク(www.ruby-lang.org)
マニュアル読んだ上でここがわからんとかそういう質問してくれ
どうせマニュアル読んで調べてる時間のほうが長いんだから、マニュアルの見方を勉強したほうが結局は得だ

471:デフォルトの名無しさん
09/09/30 21:18:02
>>468
$JCODEってなんやねん

472:デフォルトの名無しさん
09/09/30 21:21:37
>>468
0x1234 とかも渡してみろ。

473:デフォルトの名無しさん
09/09/30 21:47:46
>>468
正規表現じゃだめなん?

del integer_string?(str)
 return str =~ /¥A¥d+¥z/
end

474:デフォルトの名無しさん
09/09/30 22:25:26
>>469-470
お恥ずかしいです
下記のように書き直しました

def intrger_string?(str)
    if str.gsub(/\d/,"").size == 0 then
        return true
    else
        return false
    end
end

>>471
$KCODEの間違えです(´Д⊂

475:デフォルトの名無しさん
09/09/30 22:32:57
>>473
それだと2/8/16進表記に対応してないから>>468とは別物になるぞ

476:デフォルトの名無しさん
09/09/30 22:56:18
>>474

メソッド本体だが、ifの条件式が
成立したら(=false, nil以外を返ったら)true
成立しなかったら(=falseかnilが返ったら)false
を返すだけなので、その条件判定式だけでruby的には十分。

ところで str == '' のときはtrue/falseどっちになって欲しいのだろう?


477:デフォルトの名無しさん
09/10/01 08:49:38
>>475
十進だけにしたいんだろ
/\A\d+\z/ =~ str が最善だと思う

478:デフォルトの名無しさん
09/10/01 11:28:02
hoge= メソッドと hoge メソッドって、どっちが先に定義されてると自然?
reader があってから wiriter があるとわかりやすいよね?

479:デフォルトの名無しさん
09/10/01 14:25:42
attr_reader :hoge
def hoge=(value)

でやるのが俺の定番
でも両方書くなら書きやすさ的にライタ側から書くかなあ

480:デフォルトの名無しさん
09/10/01 16:38:52
ここの真ん中辺のコードなんですが
URLリンク(www.aoky.net)

wordlist.rb
code_words = {
'スターモンキー' => '新帝国の神経質な閣僚のフィルとピート',
'カタパルト' => 'chuckyゴーゴー', '火炎瓶' => '暖房つきのリビング',
'ナイジェリア' => "Ny and Jerry'sドライクリーニング(ドーナッツ付き)",
'とどめをさす' => 'コンセントをさす'
}

require 'wordlist'

# 邪悪なアイデアを取ってコードワードと入れ替える
print "新しいアイデアを入力してください: "
idea = gets
code_words.each do |real, code|
idea.gsub!( real, code )
end

メソッドdoのブロック引数で、real, codeの二つが出てきます。
これはなんですか?意味がわからないです。。。

コピペで、rbファイルを2つ作って、下のコードをruby hoge.rbとして実行しても
想定通り動きませんし・・・

481:デフォルトの名無しさん
09/10/01 16:53:16
>>480
こゆこと
これなんぞと思ったら出力して中身を見れ

code_words.each do |key, value|
puts "#{key} -> #{value}"
end

ナイジェリア -> Ny and Jerry'sドライクリーニング(ドーナッツ付き)
カタパルト -> chuckyゴーゴー
スターモンキー -> 新帝国の神経質な閣僚のフィルとピート
火炎瓶 -> 暖房つきのリビング
とどめをさす -> コンセントをさす

482:デフォルトの名無しさん
09/10/01 16:54:10
だからそういう文法というか基本クラスのメソッドの使い方っぽいのは
マニュアルを一応眺めてから「ここの部分がさっぱりわからんおまえら親切に教えろ」とか言ってくれ
親切かどうかはともかくおおむね解説なりツッコミなりが入るからさ
URLリンク(www.ruby-lang.org)
> key と value を引数としてブロックを評価します。 self を返します。
{:a=>1, :b=>2}.each_pair {|k, v| p [k, v]}

# => [:a, 1]
   [:b, 2]



483:デフォルトの名無しさん
09/10/01 16:54:20
doはメソッドではない。ではdoでなければメソッドは何でしょう?

484:デフォルトの名無しさん
09/10/01 16:59:00
>>482
それはマニュアルを読むだけの力があるのに
手抜きして読まない人向けのお言葉

485:デフォルトの名無しさん
09/10/01 17:00:29
>>483
do はブロック開始の(予約)文字列
メソッドに引数を渡すときの ( と ) それそのものがメソッドではないのとおおむね同じ理屈
文字列だからたまたま読めるだけで、別に <<<<<< >>>>>> でもよかった

486:デフォルトの名無しさん
09/10/01 17:06:57
>>481
eachメソッドがハッシュに対して使われたときは、その引数は
|key,value|という形になるわけですね。

>>482
申し訳ないです。

>>483
481の結果からすると、each(すべての要素にたいして)do以下を行えという
ことだと思いますが、メソッドでないならdoはなんだろう。

487:デフォルトの名無しさん
09/10/01 17:14:30
>>481
実行してみました。
undefined local variable or method `code_words' for main:Object (NameError)
というエラーが出ました。code_wordsが定義されていない?

488:デフォルトの名無しさん
09/10/01 17:20:19
初心者が最初にwhyの感動的rubyガイドで勉強するのは
不適切だったりしますか?

489:デフォルトの名無しさん
09/10/01 17:44:46
>>488
こっちのが無難
URLリンク(www1.tf.chiba-u.jp)

490:デフォルトの名無しさん
09/10/01 17:56:55
>>486
だから、doは予約語だってば。
ifがメソッドでないのと同じ。

491:デフォルトの名無しさん
09/10/01 18:12:37
> >>483
> 481の結果からすると、each(すべての要素にたいして)do以下を行えという
> ことだと思いますが、メソッドでないならdoはなんだろう。

そのeachはなんですか?
すべての要素にたいして、というおまじないか何かですか?

プログラミング言語はそういうふわふわとしたものではないです。

492:デフォルトの名無しさん
09/10/01 18:21:35
おまいら、ここは初心者スレだ。
初心者っつーのはとんでもない思い込みや勘違いをしていることも多いんだから
あたたかい目でみてください。

>>486
>メソッドでないならdoはなんだろう。

すでに指摘があるように、doは構文を表す予約語のひとつです。
while i < 10 do
 print i
end
では、whileやdoやendが予約語です。なおこの場合ならdoは省略可能。

[1, 2, 3].each do |x| puts x end
なら、each や puts はメソッド名、do と end は構文を表す予約語。

493:デフォルトの名無しさん
09/10/01 18:39:54
do が何だかわかりませんレベルの人には来て欲しくないな
質問するなら最低限、言語の基礎は身に付けておいて欲しい
これくらいは自力で学習、調査しておくのが質問する側のマナーだろう

494:デフォルトの名無しさん
09/10/01 18:42:28
そもそも、動作としては arr.each(ブロック) なんだよ
オブジェクト arr の インスタンスメソッド each に引数でブロックを与えている
ただ、便利なブロックがこのままだとたいそう使いにくいので

[1,2,3].each(do |e| p e endのブロック、ただし実行できるならこのブロックを要素ごとに実行すること)

といちいちテクニカルにする代わりに

[1,2,3].each do |e|
p e
end

と平易に書くように Ruby を作ったのだ
このへんの動作が気になるなら

my_block = lambda do |e|
p e
end
[1,2,3].each(&my_block)

とでも書いてみるといい

495:デフォルトの名無しさん
09/10/01 18:58:26
>>493
思考過程の筋が見えるなら特に問題はないと思われ
まあ、つまりは「勝手に省略せず詳しく書け」ということでしかないわけだが
若干のエスパー能力が要るから万人には勧められない

496:デフォルトの名無しさん
09/10/01 19:29:15
理解としては>>486でまったく問題ないのになんでこんなことになってるんだ

497:デフォルトの名無しさん
09/10/01 20:58:03
申し訳ありません。whyのrubyガイドが
最初の方は、とてもわかりやすかったのです。

読み進めていると、コードが出てきて、ruby ファイル.rbと実行しても
エラーが出たりするようになり、僕はアホなのだろうかと思って質問しました。

初心者向けとして適当でないようなので、もうすこし文法を押さえながら
読んでみようと思います。ありがとうございました。

498:デフォルトの名無しさん
09/10/01 23:29:17
>>493
>do が何だかわかりませんレベルの人には来て欲しくないな

おまえは>>1を声に出して10回よめ。
この程度が我慢できないやつはこのスレくるな。

499:デフォルトの名無しさん
09/10/01 23:41:55
でも>>493程度が我慢できない人は2chに来るべきじゃないよね。

500:デフォルトの名無しさん
09/10/01 23:45:19
せめてネタ系のスレで頑張ってもらえるとありがたいんだけど
そうもいかないんだろうね

501:デフォルトの名無しさん
09/10/02 00:48:12
rubyに限らず初心者スレッドは全てを受け入れる糞溜だと思ってる

502:デフォルトの名無しさん
09/10/02 05:22:34
日本語の文字抽出でうまい方法が分からず困っています。

抽出元のサンプルは下記の通り
11 ○ × abcDefghIjkLmnoPqrsTu 00:00:59 abs この、文字列を抽出したいんdesu. 09/10/02 00:16:55 69
上記サンプルのうち、「この、文字列を抽出したいんdesu.」の部分を抽出したいんです。
抽出対象:日本語、句読点、日本語文字列に付随する半角英数字、半角記号("テスト."等。空白類を挟んだら不要対象とする)
不要対象:半角英数字、半角記号、空白、"○"、"×"等

現在のコードは下記の通り

while line=gets
if /\w*\s*\w*\s*(\W+)\w*\s*\w*\s*(\W+)\w*\s*\w*\s*(\W+)\w*\s*\w*\s*(\W+)\w*\s*\w*\s*(\W+)\w*\s*\w*\s*(\W+)\w*\s*\w*\s*/ =~ line
if $1 != " "
print "日本語抽出:", $1, $2, $3,$4,$5,$6,"\n"
end
end
end

実行結果↓
日本語抽出:○ × ::この&カ字列を抽盾オたいん

(続きます)

503:デフォルトの名無しさん
09/10/02 05:25:20
(続き)

if文の条件が大変なことになっているのは
if /(\W+)/ =~ line
としてしまうと最初の"○ ×"のみ抽出して終わってしまうためです。
プログラムとして力技で美しくないのは分かっています。
また、日本語が文字化けしてしまっています・・・文字コードの問題だろうとソース先頭に#!ruby -Ksを足してみましたが、
空白類の扱いが変わった?のと記号以外の文字類が表示されなくなりました。

抽出部分を綺麗にするにはイテレータで回せば良いかなと思っています。
→一文字ずつチェックしようと思いましたが、String#each_byteが全半角を問題なく捌けるのか問題が・・・

問題をまとめると
1:文字列の中から上記抽出対象のみ抽出したいが、力技で汎用性がないので改善したい
2:文字化けしてしまうが原因、対策が分からない
となります。

OSはWindows XP SP3でRubyのバージョンは1.8.6です。

長文乱文で分かりにくい質問となってしまい申し訳ありませんが、よろしくお願いします。

504:デフォルトの名無しさん
09/10/02 05:32:32
まあrubyはメゾットの様なものが多いのも事実だけどな。
そこらの統一性の無さは、原理追求派よりも教祖信仰派のほうが多いってだけじゃないかと。
メゾットだからこうって寄りも、教祖がこう使う様に教えたから深く考えずに同じ様に使うのほうが、良いruby信者に成れる気がする。

505:デフォルトの名無しさん
09/10/02 05:36:40
irb> s = "11 ○ × abcDefghIjkLmnoPqrsTu 00:00:59 abs この、文字列を抽出したいんdesu. 09/10/02 00:16:55 69"
irb> puts s.split[6]
この、文字列を抽出したいんdesu.

空白で区切られた7フィールド目という意味ならこれでいいのでは
フィールド内に半角空白が混じっても構わないという条件だととたんに面倒になるが

506:503
09/10/02 06:02:35
>>505
レスありがとうございます。
すみません、確かにサンプルに限定すればそれで解決ですね。

ただ、やりたいのは日本語部分(日本語文字列に付随する記号類、英数字は抽出対象とする)の抽出なのです。
質問の書き方が悪かったのですが、おっしゃる通り、日本語列の中の空白、記号、英数字、
もしくは日本語列の先頭・末尾の半角英数字、記号類は抽出したいんです。
(日本語列と結合していない日本語以外(英数字、記号、空白類)は除外)

507:デフォルトの名無しさん
09/10/02 06:13:51
結合ってなんだ?

508:503
09/10/02 06:21:11
>>507
付随と同義です。ややこしくてすみません。
文字列の結ご・・・連結ですね。すみません。

509:デフォルトの名無しさん
09/10/02 06:46:02
>>507
おそらく、セパレータとフィールドという概念がないんだと思う
だから、元データを作った人の意図を読むことができないし、説明もできてないから俺らもどうにもできん

たとえば、俺らは>>502を見たときに
「番号、マルバツ、マルバツ、英数字、時分秒、英数字、日本語入り文字列、年月日、時分秒、数字」
という空白で区切られた固定の何らかの意味を持った10項目(または年月日+時分秒の9項目)と読むが、
>>503にとってはおそらくそうではないのだろう
ひょっとしたら例示のために出しためちゃくちゃな文字の集まりなのかもしれない

空白の数には全く意味がなく、
形態素解析のように「空白で区切られた、日本語文字を含む文字の連なり」が欲しいのなら
split.find_all{|e| <eがShift_JISの日本語文字を含むということ> }
とすればよい
Shift_JIS (というかたぶん CP932)の日本語文字を含む条件を表す正確な正規表現はどっかから拾え

irb> s = "11 ○ × abcDefghIjkLmnoPqrsTu 00:00:59 abs この、文字列を抽出したいんdesu. 09/10/02 00:16:55 69"
irb> puts s.split.find_all{|e| /[\xa1-\xdf]|[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc]/n =~ e}.delete_if{|e| /\A[○|×|△]\Z/s =~ e}
この、文字列を抽出したいんdesu.


510:デフォルトの名無しさん
09/10/02 10:01:18
>>503
>>509のようにsplitで配列にしてからfind_allでもいいし
文字列に繰り返し正規表現をしたいのならscanてのもある
Array,String,Hash,Enumerableあたりのメソッドは軽くリファレンスに目を通しておくといいよ
へぇこんなのあるんだっていう程度でも使う時に思い出せる

511:デフォルトの名無しさん
09/10/02 10:02:44
-Ksを指定するとShift_jis全角文字も\wでマッチするようになる

512:デフォルトの名無しさん
09/10/02 10:18:29
>>511
「も」では駄目だろ
英数字記号だけの場合はマッチしてはいけない
irb> /\w/ =~ "あういえ".tosjis
nil
irb> $KCODE = 's'
irb> /\w/ =~ "あういえ".tosjis
0
irb> /\w/ =~ "a"
0

全角文字(と場合によっては半角カタカナ)にのみマッチする正規表現か、
英数字記号だけにマッチして全角区域に誤爆しないという正規表現が必要

513:デフォルトの名無しさん
09/10/02 10:32:08
>>512
ああすまん-Ksにして結果が変わった原因ってことで書いただけなんだ

514:デフォルトの名無しさん
09/10/02 11:09:04
ruby って、ライブラリやクラスメソッドの使い方を
覚える言語ってことですか?



515:デフォルトの名無しさん
09/10/02 11:10:33
オブジェクト指向言語は大体そんなもんだ

516:デフォルトの名無しさん
09/10/02 11:26:59
大抵のプログラミング言語において、文法なんて数時間で全部理解し終えるもんだからなあ。
後は当然ライブラリの使いこなしってことになるだろう。

517:デフォルトの名無しさん
09/10/02 11:32:04
クラスメソッドよりもインスタンスメソッドのほうが多いよ!
とかそんな話を

別に覚えなくてもいいけど、その場合はライブラリに相当するものを全部自力で作ることになる
どっちか気に入ったほう選んでくれ

518:デフォルトの名無しさん
09/10/02 13:13:39
Windows版のRubyって、OpenSSLも使えるんでしょうか。
知っている人がいたら教えてください。

519:デフォルトの名無しさん
09/10/02 13:22:50
パッケージ次第だった気もするけど、基本的に使える

520:デフォルトの名無しさん
09/10/02 13:24:35
>>518
推奨されてるパッケージでインストールする限りは使えるはず

他の人のWindows版でも絶対に使えるとは限らないのは他のOS版のRubyと同じ

521:デフォルトの名無しさん
09/10/02 13:42:25
ありがとうございます。
RSAの仕組みを勉強するのにRubyを使うことにします。

522:デフォルトの名無しさん
09/10/02 14:40:48
rubyでは、値がすべてオブジェクトということは
1という数値や"太陽パクパク"という文字列や、それらを代入した
number,sun_eaterといった変数もオブジェクトということですか?

number = 1
sun_eater = "太陽パクパク"


523:デフォルトの名無しさん
09/10/02 14:59:20
>>522
整数とかはさすがに高速処理するように小細工を施してはありますが、
それらも含めオブジェクトは全部クラスのインスタンス(=オブジェクト)です

irb> p 1.class
Integer
irb> p "太陽パクパク".class
String

変数はオブジェクトについたラベルです
ラベル名 → オブジェクトID
というような対応表を Ruby が管理していて、
該当ラベルの変数が呼ばれたときにはその表の対応を参照して該当オブジェクトが使われます
変数というハコが入れ物オブジェクトとして存在するわけではありません

irb> p 1.object_id
3
irb> p "太陽パクパク".object_id
-605838888

524:デフォルトの名無しさん
09/10/02 15:06:21
>>522
>rubyでは、値がすべてオブジェクトということは
>1という数値や"太陽パクパク"という文字列や、それらを代入した
>number,sun_eaterといった変数もオブジェクトということですか?

数値や文字列もオブジェクト。

ただし、「変数」はそれらオブジェクトを格納するもの(あるいはオブジェクトとひもづけるもの)であって、オブジェクトそのものではない。
そのへんは他の言語でも同じ。

525:デフォルトの名無しさん
09/10/02 15:08:38
>>523
変数はオブジェクトじゃなくラベル。
あやうく、間違った認識で通り過ぎるところでした。
ありがとうございます。

526:デフォルトの名無しさん
09/10/02 15:10:25
>>524
他の言語でも同じなんですね。ありがとうございます。

527:デフォルトの名無しさん
09/10/02 15:50:19
C++、Perlでは宣言された変数自体がオブジェクトの実体であるケースもあるけどね
と、話をややこしくしてみる

528:デフォルトの名無しさん
09/10/02 17:55:56
他言語がどうであれ、Rubyにおいて変数は箱ではなくラベルなのは間違い無い
沢山あるオブジェクトの中のいくつかに名前を付けるのが変数
1つのオブジェクトに複数の名前があることも珍しくないし
無名のまま役割を終えるオブジェクトも存在する

529:デフォルトの名無しさん
09/10/02 17:58:09
だいなみっくえいりあしんぐ

530:デフォルトの名無しさん
09/10/02 18:04:25
2chまとめエディターを作っているのですがどうにもこうにもならなくなってしまったのでヒントをください。
やろうとしていることは
DATの中身をコピペで入力

下ごしらえの置換
アンカー順に並べ替える
チェックボッックスによるdivのclassの追加(文字色を変えたり大きくしたりするため)

ソースを出力
というものです。

ひとまずここまでひとりでつくりました。
URLリンク(tomiya.bne.jp)
やっていることは
簡単な置換とレスに1〜1001までの番号をハッシュとして付ける
ことまでです。

教えて欲しいことは
アンカー順に並べ替える方法
 本文をスキャンして「>>○○」を抽出しハッシュのkeyに代入?
チェックしたレスのみ出力する方法
チェックボックスでdivのclassを追加
 <div class="res">を<div class="res aka">や<div class="res aka deka">などに置換?
です、見当がつきそうな方はどうかご教授ください。

531:デフォルトの名無しさん
09/10/02 18:26:40
オブジェクトについて、もうひとつ質問です。
class Gohan
def caree
print "今日のご飯はラーメンだ\n"
end
def natto
print "朝飯は納豆だ\n"
end
end

yuhan = Gohan.new
yuhan.caree

asamesi = Gohan.new
asamesi.natto

この場合、yuhanやasamesiがオブジェクトになるのでしょうか?



532:デフォルトの名無しさん
09/10/02 18:29:10
ARGVで漢字のフォルダ名が展開できず困っています。

英字だと

>ruby -e "p ARGV" hon/*
["hon/新規テキスト ドキュメント.txt"]

となってうまくいきますが、漢字だと

>ruby -e "p ARGV" 本/*
["本/*"]

となってしまい、フォルダ内の新規テキスト ドキュメント.txtが展開されません。
どうすれば展開できるかご教示ください。

OSはWindows XP SP3です。
>ruby -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]

533:デフォルトの名無しさん
09/10/02 18:31:30
Ruby標準のCGIクラスって、どれぐらいの大きさのデータを受け取れるのでしょうかね?
DBの内容をWeb上からバックアップ(DL)したり、復帰させたり(UP)するシステムを考えてるのですが
バックアップするときは、ストリーミングで流せばいいような気がするけど
復帰させるときは、大量のデータが一度メモリに溜め込まれる気がします

たとえば、サーバの実メモリを超えるようなデータを受け取ったときに処理できるのか?っていうのが疑問です。
また、なにか回避策が有るのでしたら、教えてください。

534:デフォルトの名無しさん
09/10/02 18:35:45
ワイルドカードの展開ってシェルの役割じゃ・・・?
と思ったらWinではやってくれないのか

535:デフォルトの名無しさん
09/10/02 18:39:19
>>531
>>523


536:デフォルトの名無しさん
09/10/02 18:42:14
>>532
ARGV の処理は環境依存
コマンドプロンプトで

DIR 本/*

とやって、望みの出力が得られなければ ARGV では無理というかコマンドプロンプトの使い方の知識が足りない

537:532
09/10/02 18:50:17
>>536

それはうまくいきます。/の代わりに\ですが。

>dir 本\*
ドライブ D のボリューム ラベルは以下略

>ruby -e "p ARGV" hon\*
["hon/新規テキスト ドキュメント.txt"]

英字は/でも\でもok

>ruby -e "p ARGV" 本\*
["本\\*"]

漢字はどっともだめ

538:532
09/10/02 18:55:24
書き忘れ

>ruby -e "p ARGV" */*
["hon/新規テキスト ドキュメント.txt", "本/新規テキスト ドキュメント.txt"]


539:デフォルトの名無しさん
09/10/02 18:56:09
>>530
#!/usr/local/bin/ruby -Ks
class Ch2Thread
def initialize(file)
@dat = file
parse
end
attr_reader :data, :title, :size

def [](v); @data[v]; end
def parse
@data = Array.new
arr = @dat.to_a
arr.each_with_index do |res, i|
@data << parse_res(res, i)
end
@title, @size = arr[0].split(/<>/)[-1], @data.size
end
def parse_res(res, resno)
e = res.split(/<>/)
d = e[2].split
return {:no => resno + 1, :name => e[0], :mail => e[1],
:date => "#{d[0]} #{d[1]}", :id => d[2], :be => d[3], :res => e[3]}
end
end

sure = Ch2Thread.new(File.open('./sample.dat').read)
puts "Title => #{sure.title}"
sure[0..3].each do |res|
res.each{|k,v| puts "#{k} => #{v}"}
end

540:デフォルトの名無しさん
09/10/02 18:59:22
>>532
WinXP SP2 + ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
だけど展開してくれた。なんなんだろうね

541:540
09/10/02 19:02:24
SP3だった・・・

あとコマンドプロンプトから動かしてる?
専用エディタとかから走らせたりしてると挙動が違ってくるかも

542:デフォルトの名無しさん
09/10/02 19:03:55
>>532
ren 本 書
ruby -e "p ARGV" 書/*

1.9のglob周りは多バイト文字に関しては腐ってるね。

543:デフォルトの名無しさん
09/10/02 19:04:15
1.9.1リファレンスより
>標準のシェルがワイルドカードを展開しない環境 (Win32)では、Ruby インタプリタが自前でワイルドカードを展開して Kernel::ARGV に設定します。
らしいからできるはずだと思うけど

うち(Vista コマンドプロンプト)でも
1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]だと 本\* 本/* どっちも認識してくれるけど
1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]だとできなくなってるな

544:532
09/10/02 19:11:36
ご確認いただきありがとうございます。
うちも1.8.7はokでした。

1.9.1で通る漢字もありました。
>ruby -e "p ARGV" ホン/*
["ホン/新規テキスト ドキュメント.txt"]

>ruby -e "p ARGV" 川/*
["川/新規テキスト ドキュメント.txt"]

>ruby -e "p ARGV" 山/*
["山/新規テキスト ドキュメント.txt"]

545:デフォルトの名無しさん
09/10/02 19:14:53
Ruby Freaks Lounge 第8回 Windows版Ruby 1.9で培う危機回避スキル(前編)
URLリンク(gihyo.jp)

Rubyで日本語ファイル名と聞いた瞬間に悪寒がする漏れは正しかった

546:539
09/10/02 19:16:56
とりあえずレスの全データを扱いやすい形に整えないと見通し的にどうにもならないような気がしたので、
たとえばこんなクラスを作る
動作は超適当
変数名も適当
レス本文のHTMLタグとかを消したい場合は parse_res のとこで適当に追加してくれ
クラスでなくてもでっかいハッシュや配列を作るのでもいいんだけど面倒だったのでクラスにした

547:デフォルトの名無しさん
09/10/02 19:19:00
日本語とかマジで廃止しろよ
100年前に廃止してくれてれば今頃こんな苦労することも無かった

548:デフォルトの名無しさん
09/10/02 19:23:46
>>547
PC/AT互換機使うのいますぐやめろ
元凶はそれだ
ずっとNECなら日本語処理は完璧だったのだ

549:デフォルトの名無しさん
09/10/02 19:24:14
たいした苦労もしてないくせに

550:デフォルトの名無しさん
09/10/02 19:25:48
悪いのはシフトJISだよ
日本語は悪くないよ
EUCばんざーい


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5393日前に更新/199 KB
担当:undef