トップページ⇒tech
1001コメント323KB

Ruby初心者質問スレPart2

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん05/02/08 03:02:27
オブジェクト指向スクリプト言語Rubyについての質問スレッドです。
Ruby Home Page
http://www.ruby-lang.org/ja/

前スレ
Ruby初心者質問スレPart1
http://pc5.2ch.net/test/read.cgi/tech/1100534824/

本スレ
Rubyについて Part 14
http://pc5.2ch.net/test/read.cgi/tech/1103997158/

0159デフォルトの名無しさん2005/04/09(土) 17:02:16
>>158
ゆるされる表現だと思いますがjの初期化位置が違うのではないでしょうか
0160デフォルトの名無しさん2005/04/09(土) 17:06:08
>>159
ありがとうございます。
恥ずかしい限りです。
0161デフォルトの名無しさん2005/04/20(水) 15:04:30
ちょっとスレッドを試していたのですが
挙動がわかんないのでご教授願いたく・・・

require 'net/http'
target = "localhost"
path = "/"
h = Net::HTTP::new(host=target)
p h
p h.get(path)
Thread.start{
h = Net::HTTP::new(host=target)
p h
p h.get(path)
}

このコードで一回目はちゃんと200で帰ってくるのですが
スレッドの中のは結果をとってきてくれません。
スレッド中で例外が発生した場合はそのスレッドは死んじゃうとの記述があったので
p h.get(path) rescue p $!
にしてもどうも補足してくれなくて・・・
ちなみに環境はruby 1.8.1 (2003-12-25) [i386-cygwin]です
0162デフォルトの名無しさん2005/04/20(水) 15:25:27
>>161
Thread.start{
h = Net::HTTP::new(host=target)
p h
p h.get(path)
}.join

ということでなくて?
これならスレッドが終わるまえにスクリプトが終わってる
0163デフォルトの名無しさん2005/04/20(水) 15:47:23
>>162
・・・なるほど
joinしないと作ったスレッドが終わる前にメインスレッドが
終わってしまうということですね。
ありがとうございました。
0164デフォルトの名無しさん2005/04/25(月) 00:03:03
/^/と/\A/ の違いがよくわからないです。
0165デフォルトの名無しさん2005/04/25(月) 00:39:26
>>164
リファレンスマニュアル見てもわからんの?
前者は行頭に、後者は文字列の先頭にマッチ。
たとえば "a\nb\nc\n" なら、
前者は "a" の前と "b" の前と "c" の前にマッチするが、
後者は "a" の前にしかマッチしない。
0166デフォルトの名無しさん2005/04/25(月) 23:35:33
>>165
どうもありがとうございました
0167デフォルトの名無しさん2005/04/27(水) 00:06:13
Rubyではどんなに大きな数字でも扱えるってホントですか?
0168デフォルトの名無しさん2005/04/27(水) 00:23:18
嘘です
0169デフォルトの名無しさん2005/04/27(水) 08:33:13
ほんとです

$ ruby -e 'p 1.0/0.0'
Infinity
0170 ◆m7YeytgDFE 2005/04/27(水) 11:38:51
>>167
下記のリファレンスマニュアルでは、メモリサイズの制約だけとありますね。
ttp://www.expansys.jp/product.asp?code=120505
0171デフォルトの名無しさん2005/04/27(水) 19:42:50
∞は数字じゃないと思います。
0172デフォルトの名無しさん2005/04/28(木) 20:47:22
最大の数字であるところの 9 は普通に扱えます。
0173デフォルトの名無しさん2005/04/28(木) 21:24:15
恋するプログラム買った。
0174デフォルトの名無しさん2005/04/28(木) 22:32:42
コクったりしてくれますか。
0175 ◆m7YeytgDFE 2005/04/28(木) 22:53:10
>>173
お。どんな感じです?近所の書店には未入荷でして。
ネットで予約した方が早かったかな?
0176デフォルトの名無しさん2005/04/28(木) 23:12:09
>>175
今37ページでオブジェクトの解説してます。
ruby初めてだけど、他の言語知ってるなら
充分理解できるようにわかりやすくかかれている感じ。
それより先は読んでないからまだ何とも言えないです。

所で、実行ファイルってrb形式のヤツですよね?
実行するとアクセスが拒否されましたってダイアログが出て実行できないんだけど
これは何故なのか…
0177 ◆m7YeytgDFE 2005/04/28(木) 23:21:35
>>176
付属のCD-ROMの収録内容かな?実行環境はLinux?Windows?
Windowsなら、拡張子でRubyインタプリタを関連付いてますか?
あとは文字通りで、何かのアクセス権がないから?
手元にあれば試してみるんだけどなぁ。
0178デフォルトの名無しさん2005/04/29(金) 00:08:29
これってMargarine?それとも柳葉魚?
0179デフォルトの名無しさん2005/04/29(金) 00:12:04
>>177
winです。
付属のサンプルもですけど、多分ruby全体がダメだと思います。
なんなんだろうか…
アンインストールして入れ直してみるかな
0180デフォルトの名無しさん2005/04/29(金) 09:21:54
「恋するプログラム 〜Rubyでつくる人工無脳」
という本か。SSTP とか懐しいな。
面白そうだ、俺も買ってみよう。
0181デフォルトの名無しさん2005/04/29(金) 13:41:21
>>176
ファイルのプロパティを開いて 読み取り専用のチェックを外す

とよひとおもふ
0182デフォルトの名無しさん2005/04/29(金) 13:46:03
まさかCD-ROM上のファイルを実行しようとしてないよな
HDDにCPしてから>>181 で、初めて実行可能になるきがするが
0183デフォルトの名無しさん2005/04/29(金) 16:54:43
そういえば最近恋してないなぁ。
0184デフォルトの名無しさん2005/04/29(金) 20:25:07
二次元でならいつも恋してる

……あ、最近ギャルゲもエロゲもあんまりやらなくなったなぁ´`,、(´∀`)´`,、
0185デフォルトの名無しさん2005/04/29(金) 21:16:39
俺は三次元だぜ!
まきまきかわいいよまきまき。
0186デフォルトの名無しさん2005/04/29(金) 21:42:49
なにこのキモスレ…
0187デフォルトの名無しさん2005/04/29(金) 22:54:32
rubyistはみんな キモイのさへ(へ´∀`)へ
0188デフォルトの名無しさん2005/04/29(金) 23:10:45
rubyでレジストリの操作って出来ますか?
windowsの表示をクラシックモードにしたりをrubyでやりたいのですが
出来ますでしょうか?
0189デフォルトの名無しさん2005/04/29(金) 23:57:59
>188
http://www.ruby-lang.org/ja/man/?cmd=view;name=win32%2Fregistry.rb
これで何とかならん?
0190デフォルトの名無しさん2005/04/30(土) 11:08:53
ruby/tkに関して質問があります。
例えば、次のようなスクリプトを実行したとします。
rubyのバージョンは1.8.2, Tkのバージョンは8.3.5, OSはLinuxです。

--- ここから ---
#!/usr/local/bin/ruby -Ke

require 'tk'

font = TkFont.new({'size' => '12'})

scr = TkScrollbar.new.pack('fill' => 'y', 'side' => 'right')
txt = TkText.new('font' => font).pack('expand' => 'true', 'fill' => 'both', 'side' => 'right')
txt.yscrollbar(scr)

Tk.mainloop
--- ここまで ---

このとき、TkTextウィジェット内での日本語入力は可能で、同じTkText内でのコピペも問題ありません。
しかし、例えばこのプログラムをふたつ立ち上げて、一方のTkText内の日本語を他方にコピペすると
文字化けしてしまいます。

なにか解決方法はないでしょうか。よろしくお願いします。
0191 ◆m7YeytgDFE 2005/04/30(土) 13:39:09
>>190
Linux上のruby 1.8.2、tk 8.4.9で試したところ、
プログラム間でのコピー&ペーストで文字化けしません。

他のプログラムとの間でも同様に文字化けするのでしょうか?
クリップボードを監視変更するようなプログラムが動作していませんか?
01921902005/04/30(土) 15:06:52
>>191

>他のプログラムとの間でも同様に文字化けするのでしょうか?

問題となっているプログラムを仮にAと呼ぶと
mlterm -> mlterm: OK
mlterm -> A: NG
A -> mlterm: NG
A -> A : OK
ただし、別の新しいプロセスとして立ち上げたものをA'とすると
A -> A': NG
です。

>クリップボードを監視変更するようなプログラムが動作していませんか?

XfceのClipboard Managerが動いていましたが、
これを落としても文字化けしました。
0193デフォルトの名無しさん2005/04/30(土) 18:19:29

print '能'

このプログラムで"が閉じられていないというエラーが出ます。
ちなみにlinuxでは動作しますが、win32だと駄目です。
KCODEの設定をしても駄目みたいです。

こういうことって結構あるのですか?
0194デフォルトの名無しさん2005/04/30(土) 19:04:59
スレ違いかもしれませんが、質問させて下さい。

rdindex (1.2.2) を使いたいと思っているのですが、
インストールに失敗します。

$ ruby setup.rb config

とすると、~/.rdindex がないと言われるので、
{package_root}/dot.rdindex をコピーして続行しました。

$ ruby setup.rb setup

とすると、
{package_root}/rdindex-1.2.2/bin/rdindex/rdindex:2:in `require': No such file to load -- rdindex (LoadError)
と怒られます。

どうやらパッケージ内にこのファイルが無いようにも思えます。
({package_root}/setup/rdindex.rb はインストール用?)

正常に使用できるようにするには、どの様にすれば良いでしょうか?
0195デフォルトの名無しさん2005/04/30(土) 19:25:19
>>193
print "能\"
とでもしてください。

多分、
print "ソ"
print "表"
あたりでも同じ事が起こると思う。文字コードの問題かと。
01961902005/04/30(土) 20:34:33
>>191
tcl/tk-8.4.9をインストールしてrubyもリビルドして試したところ
文字化けしませんでした。
8.3.5に拘る理由もないので、この機会にバージョンアップすることにします。
ありがとうございました。
0197デフォルトの名無しさん2005/04/30(土) 22:37:47
>>193

$KCODEは実行の際に関係する設定だから。
その問題はパースの際の問題なので
Rubyの引数に-Ksするかスクリプトの一番上に#! ruby -Ks
として解決。
0198デフォルトの名無しさん2005/05/01(日) 01:43:23
>>195
>>197
サンクスです
0199デフォルトの名無しさん2005/05/01(日) 02:58:06
ローカル変数を作るにはどうすればいいですか。
例えば下のブロックの中に tmp というローカル変数を作りたいのですが
どのように書けば良いでしょうか。

tmp = 1
… {
    # ここ
}
print tmp
0200デフォルトの名無しさん2005/05/01(日) 10:10:13
ブロック外で初めてローカル変数を使ったら、
当然、そのスコープでのローカル変数になるから、
素直に、ブロック外かブロック内のどちらかの変数名を変更するか、
別の種類の変数などを利用していく方が、自然じゃないかな。
# for はちょっと特殊なので気をつけよう
0201デフォルトの名無しさん2005/05/01(日) 18:57:35
もうrubyは全部グローバル変数と思って変数名を管理しとかないと
悲惨な結果になるような気がしてきた。
0202デフォルトの名無しさん2005/05/01(日) 19:38:14
>>199
Rubyの仕様上、ムリ。違う変数名にしろ。
というか、こんなことできる言語って他にあるか?
0203 ◆m7YeytgDFE 2005/05/01(日) 19:48:04
>>202
C++だとネストしたブロック内で同名の別変数を使えますね。
そういう言語に慣れてると混乱するかも。
今回の事例だと、変数名を変えるのが無難かも。
あるいは、該当部分を別のメソッドに分割するとか。
0204デフォルトの名無しさん2005/05/01(日) 20:23:43
似たような言語のperlも、 { } と my宣言を使って
名前に関係なく自由に変数のスコープを記述できるな。
0205デフォルトの名無しさん2005/05/01(日) 20:59:10
class A
def initialize
@x = "xxx"
end
class B
def initialize
p @x
end
end
end

A::B.new

class A の @x を class B のメソッドから参照するには、どうすれば
0206 ◆m7YeytgDFE 2005/05/01(日) 22:21:53
>>205
Rubyリファレンスマニュアルの下記ページには以下の記述があります。
http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%AF%A5%E9%A5%B9%A1%BF%A5%E1%A5%BD%A5%C3%A5%C9%A4%CE%C4%EA%B5%C1
> クラス定義はネスト(入れ子)にして定義できます。
> 以下の例で入れ子の外側のクラス Foo と内側のクラス Bar の間には
> (定数 Bar が Foo の中の定数 Foo::Bar であること以外には)
> 継承関係などの機能的な関連はまったくありません。

205のスクリプトの「A::B.new」ではA#initializeを実行することが無く、
そもそもクラスAの@xが存在しません。
普通にAとBのクラスを定義する場合と同じなので、Aの@xを参照するなら、
まずAのインスタンスを作る必要があります。
そして、Aでは「attr_reader( :x )」のようにして参照用のメソッドを
用意しておきます。

もしかして、本来の意図は「class B < A」といった継承関係でしょうか?
0207デフォルトの名無しさん2005/05/02(月) 13:20:19
["a=1" "b=2" "c=3"]
こういうオブジェクトを e = {"a" => "1", "b" => "2", "c" => "3"}
みたいなハッシュに変換したいんですが
どう書けばいいんでしょ?

3時間ほど悩んでます
0208 ◆m7YeytgDFE 2005/05/02(月) 13:32:44
>>207
とりあえず、こんな感じ?つっこみ歓迎。

def to_hash( array )
hash = Hash.new
array.each do | x |
if /(.+)=(.+)$/ =~ x
hash[ $1 ] = $2
end
end
return hash
end

x = ["a=1", "b=2", "c=3"]
p to_hash( x )
0209デフォルトの名無しさん2005/05/02(月) 13:37:06
>>207
p ["a=1", "b=2", "c=3"].inject({}) { |r,e| k,v = e.split(/=/, 2); r[k] = v; r }
0210デフォルトの名無しさん2005/05/02(月) 13:45:09
あ、もうちょっと短くできるかな。
p ["a=1", "b=2", "c=3"].inject({}) { |r,e| r.store(*e.split(/=/, 2)); r }
02112072005/05/02(月) 13:46:51
ども
両案とも、あっさりうまくいってしまいました
>>208
正規表現使う案はさすがに思いつかなかったです(わら

>>209, 210
injectは知らなかったです、勉強になりました。


ありがとう
0212 ◆m7YeytgDFE 2005/05/02(月) 14:17:14
>>209
うぁ、injectを忘れてました。まだ頭が1.6系...。
それにsplitで十分かつすっきりしますね。ううむ、まだまだだなぁ。
0213デフォルトの名無しさん2005/05/03(火) 00:21:03
私も恋するプログラム買いました。人口無脳を作ってどんどん機能を
追加していくという流れで、配列、条件分岐から、正規表現、GUI、
webサービス、マルコフ辞書までと幅広い内容です。
ひとつ気になる点としては、作者が死んじゃってることくらいです。

0214 ◆m7YeytgDFE 2005/05/03(火) 07:05:24
>>213
遺稿になっちゃったんですね。
こういう書籍を書ける人が...もったいないなぁ。
0215デフォルトの名無しさん2005/05/03(火) 09:39:26
Rubyで、BASICのEND文と同じことができる命令ってありませんか?
プログラムの実行を強制的に終了させる命令。
それが無理なら、せめてプログラムの末尾にGOTOさせたいんだけど、そんな命令もない。

まったく不便な世の中になったもんだ。
0216デフォルトの名無しさん2005/05/03(火) 09:53:13
exit
0217 ◆m7YeytgDFE 2005/05/03(火) 13:04:34
>>215
何のために強制終了させたいのか、GOTOが欲しいのかが分かりませんが、
まずは216の通りにexitでしょうねぇ。異常終了を表すならabortというのも。
プログラムの末尾にジャンプさせるということであれば、例外を使う方法もありかも。

begin
何かの処理
if 終了条件 == true
raise
end
rescue
例外処理(あるいは何もしない。)
end

exitなどの詳細はリファレンスマニュアルを参照してみてください。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%B4%D8%BF%F4#exit
0218デフォルトの名無しさん2005/05/03(火) 15:48:19
今日から始めたのですが、大量ファイルからの入力 → 抽出データのリスト化出力
などのサンプル | リファレンス が載ってるところはないでしょうか
02192152005/05/03(火) 18:24:10
>>216-217
ありが�d(涙)
CGIの書き込みチェックに使いたかったんです。
raiseでムリヤリ例外を発生させてrescue節に飛ばす方がなんとなくRubyらしくてイイですね。
exitは初めて知りました・・・まだまだ知らないことばかりです;
0220デフォルトの名無しさん2005/05/04(水) 09:56:20
慣れると、以前は GOTO しか無かった不便な世の中だったもんだ、と思えるようになるよ。
02212182005/05/04(水) 13:59:58
リファレンスの添付ライブラリに色々ありました。
スレ汚してすいませんでした。
0222デフォルトの名無しさん2005/05/04(水) 22:21:07
すいません、おまいらはソースの編集はどうしてるのですか?
秀丸とかterapadとかrdeとかいろいろあるけど、
どれでやってますか?
0223デフォルトの名無しさん2005/05/04(水) 22:24:15
WZ
0224デフォルトの名無しさん2005/05/04(水) 22:38:26
xyzzy
ごくまれにviとcat
0225デフォルトの名無しさん2005/05/04(水) 22:51:36
またアンケートかよ >>121
0226デフォルトの名無しさん2005/05/04(水) 22:58:12
xyzzyのrubymodeみつかんね
0227 ◆m7YeytgDFE 2005/05/04(水) 23:45:37
>>222
xemacsのruby-mode。
0228デフォルトの名無しさん2005/05/05(木) 11:09:18
>>222
vim
0229デフォルトの名無しさん2005/05/05(木) 12:48:29
>>121-133 >>222 >>223 >>224 >>227 >>228
おまいら、「Ruby でエディタ何使ってますか?」スレ立ててそこでやれ。
0230デフォルトの名無しさん2005/05/05(木) 12:53:09
>>222
Visual Studio
0231デフォルトの名無しさん2005/05/06(金) 08:11:49
乱数の分布をとるようにしたいのですが、

a = Array.new(10, 0)
for i in 1..100
case rand(10)
when 0; a[0] += 1
when 1; a[1] += 1
when 2; a[2] += 1
when 3; a[3] += 1
when 4; a[4] += 1
when 5; a[5] += 1
when 6; a[6] += 1
when 7; a[7] += 1
when 8; a[8] += 1
when 9; a[9] += 1
end
end

このやり方だとrand(100)とかrand(1000)にすると、
when 0; a[0] += 1 をたくさん書かないといけません
何かスマートな方法がないでしょうか?
よろしくお願いします
0232デフォルトの名無しさん2005/05/06(金) 08:16:15
randから返ってきた値を添字にしないのは何故?
0233デフォルトの名無しさん2005/05/06(金) 08:21:10
>>232
そんなレス付ける暇があったらコードで示してやればいいのに。
性格悪い奴だな。
0234デフォルトの名無しさん2005/05/06(金) 08:35:42
a[rand(10)]+=1
0235デフォルトの名無しさん2005/05/06(金) 08:56:16
>>222
RDE
0236デフォルトの名無しさん2005/05/06(金) 13:33:39
Perl の tarball 眺めてたら、 t/japh/ なんてのを見つけた。
Ruby にも test/jarh.rb きぼんぬ。
0237デフォルトの名無しさん2005/05/06(金) 17:17:11
>>236
ttp://jarp.does.notwork.org/ruby/jarh.rb ←これを入れてもらう?
test/ よりも sample/ の方がいいかもしれない。

sample/ 以下って2年以上変更されてないファイルがほとんどだけど変更しない方針なのかな。
0238デフォルトの名無しさん2005/05/06(金) 17:33:07
>>232-234
こんなソッコーで回答してもらえるとは
ありがとうございました
0239デフォルトの名無しさん2005/05/06(金) 22:56:54
>>237
どの言語でもsampleの中って骨董品ばかりじゃない?
0240デフォルトの名無しさん2005/05/06(金) 23:31:45
>>233
そんなレス付ける暇があったらコードで示してやればいいのに。
性格悪い奴だな。
0241デフォルトの名無しさん2005/05/08(日) 12:48:04
ふと Test::Unit でもはじめてみようかと試したのですが、
Rubyって拡張子が cgi だと require できないのでしょうか。
もしそうなのであれば、拡張子が cgi のファイルをテストするいい方法はどのようなものでしょうか。
0242デフォルトの名無しさん2005/05/08(日) 13:11:40
ていうかphpみたいに拡張子.rbにしてもうちょっと自己主張すればいいのに。
0243デフォルトの名無しさん2005/05/08(日) 13:13:15
>>241
require "hoge.cgi"
でいけない?
0244デフォルトの名無しさん2005/05/08(日) 13:32:36
シングルクォーテーションもダブルコォーテーションもだめでした。
現在は、ファイルをコピーして拡張子を rb にのものに置き換える処理のあとに require しています。

もうひとつ質問なのですが、
コンソールでは動くテストケースなのですが、
eclipse の RDT で動かそうとすると、

"起動中" 中に内部エラーが発生しました。
java.lang.RuntimeException: Unable to execute interpreter: -I "C:\data\workspace\ws1\calendar" -I "testunit" -- "No file specified in configuration" testunit/test_calendar.rb 6789 false TCMyCalendar

というエラーが出て、実行されません。
6789 という数字に覚えがないのですが、このエラーを回避するにはどうしたらよいのでしょうか。
0245デフォルトの名無しさん2005/05/08(日) 13:44:10
6789行目?
0246デフォルトの名無しさん2005/05/08(日) 13:52:41
テストしたいだけなら、外部呼び出しの exec 等で良いんじゃない?
*.cgi って Ruby 以外なんでもアリなんだから、
ライブラリをロードする require が *.rb, *.so 限定な方が自然だろう。

> ていうかphpみたいに拡張子.rbにしてもうちょっと自己主張すればいいのに。
どゆいみ?
勘違いじゃなければ、httpd 側の設定の話な気がする。
0247デフォルトの名無しさん2005/05/08(日) 14:03:03
配列の処理で
「ある条件を満たす要素以降の要素」に対して
処理をしたい時はどうすればよいのでしょう?

Cで書くなら↓のような感じなのですが
eachを使うと条件を満たした行しか得られないようなので・・

for(i=0; i<MAX-1; i++){
  if(array[i] == 条件)
    for(j=i; j<MAX-1; j++){
      したい処理
    }
  }
}
0248デフォルトの名無しさん2005/05/08(日) 14:21:55
>247
泥臭くやると
array[ array.index(条件) ... array.length].each { |e|
# eに対して「したい処理」
}

かな。だれかエレガントな解キボンヌ
0249デフォルトの名無しさん2005/05/08(日) 14:37:13
start = array.index(条件)
end = array.length

for x in start..end do
したい処理
end

もしくは、

array[start, end].each do |item|
したい処理
edn

とか?
0250デフォルトの名無しさん2005/05/08(日) 14:41:02
あ、すまん edn > end

あと end = array.length にて end 使ったらマズい悪寒 orz
ブロックの終端以外の end は fin にでも書き換えてくれ
02512472005/05/08(日) 14:45:18
>>248-250
ありがとうございます。試してみます。
02522472005/05/08(日) 14:45:44
sage忘れスマソ
0253デフォルトの名無しさん2005/05/08(日) 17:00:20
あるクラスのインスタンスメソッドから、
同じクラスのクラスメソッドを呼ぶときってどうしていますか?

・AruClass.classmethod()
・self.class.classmethod()

これ以外の方法はあるのでしょうか?
0254デフォルトの名無しさん2005/05/08(日) 17:02:28
オブジェクトのリファレンスか別名を作る方法はないでしょうか?
例えば hash[:a][:b][:c] に x という別名を作って、
x にvalueを代入すると hash[:a][:b][:c] にも代入される、みたいな事を
したいのですが。
02552542005/05/08(日) 18:16:18
= で出来ました。
0256デフォルトの名無しさん2005/05/08(日) 22:55:45
>>253
なぜそれ以外の方法が必要なのか述べよ(250字)
0257デフォルトの名無しさん2005/05/09(月) 01:31:37
>>256
クラス名を書くのはクラス名が変わったとき(あってはならないが)めんどい。
self.class だと長い。

せめて class って直接書いて構文エラーにならなければいいのになぁ。
0258デフォルトの名無しさん2005/05/09(月) 08:36:38
>>257
> せめて class って直接書いて構文エラーにならなければいいのになぁ。
予約語だしなぁ。
それにclassを認めるとdefもifもwhileも…とか出てきそうでイヤ。
■ このスレッドは過去ログ倉庫に格納されています