5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Ruby初心者スレッドPart6

1 :980:2006/05/18(木) 11:09:57
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
関連スレやURLは2以降。Ruby on Railsの質問はWebProg板のRailsスレで。

■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
 ・ぐぐる
 ・マニュアルで探す http://www.ruby-lang.org/ja/man/
 ・FAQを読む http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
 ・詳しい内容(「動きません」「うまくできません」では回答しようがない)
 ・エラーメッセージ(なるべくそのままで)
 ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
 ・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。

■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。


宗教的な話題は禁止します。


880 :デフォルトの名無しさん:2006/07/21(金) 01:08:23
>>857
nkf-utf8になったのは1.8.2からだからだろう。

881 :デフォルトの名無しさん:2006/07/21(金) 01:53:46
>>880
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=ruby+1.8.2+feature
ですね。なるほど納得です。
フォローありがとう。
RSS は UTF-8 にしておいた方が無難なので、uconv を使った訳か。

882 :デフォルトの名無しさん:2006/07/21(金) 02:57:46
>> 853

ActivePerl の ppmみたいな仕掛けが必要ってこと?
あればいいとは思うけど、とてもそこまでのリソースがあるとは思えない。

そもそも、なかむらさんが VC++のランタイムライブラリの名前変更にかなり
頭にきてるみたいだし(ruby-core 参照してね)、基準となるバイナリをどの
コンパイラによるものにするとかいろいろ障害があるね。




883 :874:2006/07/21(金) 07:11:36
適当なクラスがあって、
while gets
 a=$_.split(/,/)
 hoge[a[0]][a[1]]="○"
end
hoge.fieldseparator=nil
hoge.rowseparator="\n"
puts hoge.to_s
とすれば表になる、みたいなのがあればいいなと
思いましたが、ないですか。

勉強がてら自分でクラスにまとめてみます。
ありがとうございました。

884 :デフォルトの名無しさん:2006/07/21(金) 09:50:40
>>879
なんか最初に書いてたことと問題が違う気がするんだが?

初心者の向きにはこっちの方がわかりやすい気がする。
"hoge_huga_hage".split("_").map{|x| x.capitalize}.join => "HogeHugaHage"

885 :デフォルトの名無しさん:2006/07/21(金) 14:05:03
>>882
それでちょうど One Click Installer の Curt Hibbs も悩んでたりするようだね。

886 :デフォルトの名無しさん:2006/07/22(土) 10:41:07
require 'open-uri'
require 'nkf'
url = 'http://money.www.infoseek.co.jp/MnJbn/jbnindex/'

def getn(url)
url1 = 'http://money.www.infoseek.co.jp/'
str = NKF.nkf("-s", open(url).read)
str.scan(/<li><a href="(.*?)"> (.*?)<\/a><small class="source"> \- (.*?)<\/small><\/li>/){|i|
urlb = url1 + i[0]
print "<a href=\"#{urlb}\">#{i[1]}</a> #{i[2]}<br>\n"
}
if str.match(/次の40件/s)
str.scan(/<a href="(.*?)">次の40件/s)
print "#"
nurl = url1 + $1.to_s
getn(nurl)
end
end

getn(url)

再起してくれないのですがどこを直せばいいんでしょう?
http://money.www.infoseek.co.jp/MnJbn/jbnindex/
ここのニュースの次の40件をどんどんさかのぼってきたいんです

887 :デフォルトの名無しさん:2006/07/22(土) 11:09:42
<li>のとこの正規表現の空白は投稿時に変換されてるけど&nbsp;だよね

んで、どうしてもファイルからリンクを抜き出さないと駄目なの?
http://money.www.infoseek.co.jp/MnJbn/jbnindex/?st=41
http://money.www.infoseek.co.jp/MnJbn/jbnindex/?st=81
http://money.www.infoseek.co.jp/MnJbn/jbnindex/?st=121
「続き」のURLはこう続いてるように見えるんだけど。
sleep 3 とか挟んだ上で(この手のでsleep無しは下品)eachでぶん回せばいいのでは。

888 :デフォルトの名無しさん:2006/07/22(土) 11:20:38
>>887
規則性に乗っ取って取得するのもいいんですが
この場合何でうまくいかないのかそれが気になる物で

889 :デフォルトの名無しさん:2006/07/22(土) 11:34:28
なんだせっかく自動で動くように書き直してたのに(w

>>888

「str.scan(/<a href="(.*?)">次の40件/s) がブロックを伴ってないから」

要は { } の書き忘れですな
いじょ

890 :デフォルトの名無しさん:2006/07/22(土) 11:57:41
>>889
str.scan(/<a href="(.*?)">次の40件/s) {|i|
print "#"
nurl = url1 + i[0]
getn(nurl)
}
こういうことですか?
でも駄目なようです..
自動で動く版、よかったら見せてください。

891 :デフォルトの名無しさん:2006/07/22(土) 12:20:19
str.scan(/<a href="(.*?)">次の40件/s) {|i|
print "#"
nurl = url1 + i[0]
p nurl # 内容確認
getn(nurl)
}

ということで渡すurlがどうなってるか確認してみるといい。

ぶっちゃけURLが間違ってる
Infoseekのほうで「次の40件」という文字列を含まない別のページを返してきてるから
2度目のgetnのココで何もマッチせずに終わってる。

892 :デフォルトの名無しさん:2006/07/22(土) 12:35:38
>>891
どうもありがとうございました
あんな間違いが起きていたと考えてなかったです

893 :デフォルトの名無しさん:2006/07/22(土) 12:56:45
あんまり初心者的でない方法。
ruby -ropen-uri -rhpricot -e 'h="http://money.www.infoseek.co.jp";a="href";d=Hpricot(open("#{h}/MnJbn/jbnindex/"));(d/"#content//li/a").each{|i|i.attributes[a]=h+i.attributes[a];puts i}'


894 :デフォルトの名無しさん:2006/07/22(土) 13:04:28
>>892
なんでもかんでも302を返してリダイレクトするインフォシークのアホ仕様の被害者さんですな。
net/httpでアクセスしてればもうちょっと早くに異変に気づけたと思うんだけども。
open-uriはリダイレクトでも無言で辿って別のページを取り込んでしまうので注意(抑制法はある?)。

def check(server,path)
  Net::HTTP.start(server, 80){ |http|
  response=http.get(path)
    puts "net/http"
    puts "response.message: #{response.message}"
    puts "title: #{response.body.scan(/<title>.+?<\/title>/)}"
  }
  html=open("http://#{server}#{path}").read #2chブラウザでは&quot;に見える
  puts "open-uri"
  puts "title: #{html.scan(/<title>.+?<\/title>/)}"
end
check('money.www.infoseek.co.jp','/MnJbn/jbnindex/?st=41') # 正しいURL
check('money.www.infoseek.co.jp','//MnJbn/jbnindex/?st=41')# 誤りなURL

結果:
net/http
 response.message: OK
 title: <title>ニュース 一覧 - Infoseek マネー</title>
open-uri
 title: <title>ニュース 一覧 - Infoseek マネー</title>

net/http
 response.message: Moved Temporarily
 title:
open-uri
 title: <title>株価 外為 信用情報 - Infoseek マネー</title>


895 :デフォルトの名無しさん:2006/07/22(土) 13:21:27
いや、これはどう考えてもInfoseekのほうが変態的なだけであって
302の移動先に自動でアクセスするopen-uriの挙動は正当なもんだと思うぞ

896 :デフォルトの名無しさん:2006/07/23(日) 16:58:00
Hash の Hash を使うときの初期化って、

h=Hash.new({})

が正解?


897 :デフォルトの名無しさん:2006/07/23(日) 18:20:21
h=Hash.new()

898 :デフォルトの名無しさん:2006/07/23(日) 18:22:07

漏れは

h = Hash.new

h['hoge'] = fuga

で使ってるけど


899 :デフォルトの名無しさん:2006/07/23(日) 19:22:03
>>898
ハッシュのハッシュを使うにしても

該当のキーが存在しない場合にも空ハッシュを返したいならそれで正解
nilを返されると困る場合やnil判定すると処理がややっこになる場合か

個人的にはそういう理由がなければデフォルトのまま生成して
素直にnil返して貰った方が気が楽かなぁ

900 :デフォルトの名無しさん:2006/07/23(日) 19:43:04
>>896
不正解、かも。用途によるが。

h = Hash.new({})
h1 = h["ahaha"]
h1["hoge"] = "fuga"
p h["a"]["hoge"] #=> "fuga"

h = Hash.new() {|k, k| h[k] = defvalue } とか h = Hash.new() { raise } あたりの
方が当り障りがないことが多いと思う。

901 :デフォルトの名無しさん:2006/07/23(日) 21:39:31
ハッシュは即値じゃないから、初期値は
ブロック形式で指定した方が良いかもね

902 :デフォルトの名無しさん:2006/07/23(日) 21:40:51
なんかかっこわるい

903 :デフォルトの名無しさん:2006/07/23(日) 22:31:45
elseifじゃなくてelsifにヤラレタ。


904 :デフォルトの名無しさん:2006/07/23(日) 22:40:22
>>903
>elseifじゃなくてelsifにヤラレタ。
昔の英語の ruby ml で、何度も見た。

905 :896:2006/07/23(日) 22:46:58
質問の仕方が悪かったです。スマソ

h={}
while なにか
 h[それか]={} if h[それか]==nil ※
 h[それか][これか]=あれか
end

hashのhashを作るとき、※の処理をするのが冗長な気がしたので、
h=Hash.new({})
と書いてみたら ※ の行を削除しても
とりあえず動いたんですが、
この書き方でいいのかな〜。
ハッシュのハッシュの初期化にはなんか別の書き方があるのかな〜
と思って質問しました。

906 :デフォルトの名無しさん:2006/07/23(日) 23:19:11
そういう目的なら、Hash.new({}) よりも Hash.new(){ Hash.new } がよいね。
h = Hash.new({})
h[1][2] = 3
p h[4] #=> {2 => 3} が表示されるけど、{} であって欲しいでしょ?

あと、関係ないけどキーが登録されているかどうかは
Hash#[] == nil じゃなくて、Hash#key?、 Hash#include? あたりで調べた方がいい。

907 :デフォルトの名無しさん:2006/07/24(月) 16:22:18
>>906

> そういう目的なら、Hash.new({}) よりも Hash.new(){ Hash.new } がよいね。
それ違うくない?

irb> hoge = Hash.new{Hash.new}
=> {}
irb> hoge[1][2] = 3
=> 3
irb> hoge[4]
=> {}
irb> hoge[1]
=> {}

↑こうなるよ?

↓こっちが正解だと思うけど

irb> fuga = Hash.new{|h,k| h[k] = {}}
=> {}
irb> fuga[1][2] = 3
=> 3
irb> fuga[4]
=> {}
irb> fuga[1]
=> {2=>3}


908 :りぃか:2006/07/24(月) 18:40:51
助けてください(>_<)
学校の課題で三角形の塗りつぶしをやっているのですが、エラーが消えなくて困っています。
エラーはこんな感じです。
「triangle.rb:219:in '-': nil can't be coerced into Fixnum (TypeError)」
使用環境はruby 1.6.7 (2002-03-19) [i386-linux]です。

プログラミング初心者です、どうかよろしくおねがいします。

909 :デフォルトの名無しさん:2006/07/24(月) 18:47:33
triangle.rbの219行目にある引き算の
引かれる数にあたる変数か何かの値がnilなので
引き算を実行できないぞバカなんとかしろバカ

だそうな

910 :デフォルトの名無しさん:2006/07/24(月) 18:51:31
>908
エラーの前後のソース書け
長くなるようなら↓へ池

RUBYの宿題教えてください。
http://pc8.2ch.net/test/read.cgi/tech/1106572657/

911 :デフォルトの名無しさん:2006/07/24(月) 19:01:52
長くならなくてもそっちのスレに行け。

912 :りぃか:2006/07/24(月) 19:02:08
長くなるので途中飛ばして書きます。

v = vertices()
x0 = v[0][0]
x1 = v[1][0]
x2 = v[2][0]

それからxの大小関係で場合分けをして、小さい順にax,bx,cxってしました。

問題の219行目が
my = (ay-cy)*(fx-cy)/(ax-cx)+cy

です。

913 :りぃか:2006/07/24(月) 20:24:16
たびたびすみません。
あと909さんありがとうございました。

ayやcxに数字入れてみたら、ちゃんと三角形が表示されました。
なぜaxとかのままだとnilになってしまうのか、教えていただきたいです。
よろしくおねがいします。

914 :デフォルトの名無しさん:2006/07/24(月) 20:31:50
夏だな

915 :デフォルトの名無しさん:2006/07/24(月) 20:49:21
夏だよ

916 :デフォルトの名無しさん:2006/07/24(月) 21:00:20
おう なつだぜ おれは げんきだぜ

917 :デフォルトの名無しさん:2006/07/24(月) 21:35:49
>>913
途中飛ばされると分からん

918 :デフォルトの名無しさん:2006/07/24(月) 21:51:31
どうでもいいけど、もっと新しいRuby入れたいところだな。

919 :デフォルトの名無しさん:2006/07/24(月) 21:54:01
夏になると小学生までがrubyに手を出すわけ?


920 :デフォルトの名無しさん:2006/07/24(月) 23:02:19
「3の倍数ではない」というのは、どのように打てば良いのか教えてください。

if n ??? 3 then
print n, "は", 3, "の倍数ではありません。\n"

921 :デフォルトの名無しさん:2006/07/24(月) 23:05:12
n % 3 != 0

922 :デフォルトの名無しさん:2006/07/24(月) 23:07:11
宿題なんだからそれくらい教科書嫁よ

923 :デフォルトの名無しさん:2006/07/25(火) 00:07:43
今、小学生の間でRubyが熱い。

924 :りぃか:2006/07/25(火) 03:02:36
>>917さん
ご指摘ごもっともです。ありがとうございます。
長くなりますが、書いてみます。邪魔だったらごめんなさい。
セミコロンを使ってる部分は、本当は改行してます。

require 'gfc'; require 'line_utils'; class Gfc; class Triangle
   def fill(g,c)
v = vertices() # v = [[x0,y0],[x1,y1],[x2,y2]]; color=c[0]
g.draw_line(v[0][0],v[0][1],v[1][0],v[1][1],color)
g.draw_line(v[1][0],v[1][1],v[2][0],v[2][1],color)
g.draw_line(v[2][0],v[2][1],v[0][0],v[0][1],color)

x0 = v[0][0]; x1 = v[1][0]; x2 = v[2][0]; y0 = v[0][1]; y1 = v[1][1]; y2 = v[2][1]

if x0 < x1; if x0 < x2; ax = x0; ay = x0; if x1 < x2; bx = x1; by = y1; cx = x2; cy = y2
   (上と同様に、if,elseを使って場合分け、省略)end
## ax < bx < cx となるようにした
fx = ax
## ここから下は,なぜかaxとかがnilになる.
fx.upto(cx) do |x|
my = (ay-cy)*(fx-cx)/(ax-cx)+cy
if fx < bx; ny = (ay-by)*(fx-bx)/(ax-bx)+by
else; ny = (by-cy)*(fx-cx)/(bx-cx)+cy; end
g.draw_vline(my,ny,x,color)
fx = fx + 1
end; end; end; end

g=Gfc.new(300,300,Gfc::COLOR_COLOR); t=Gfc::Triangle.new [[120,60],[50,190],[220,130]]
g.fill_figure(t,[0,0,255]); g.view

draw_lineというのは自分で定義したもので、線分を書くプログラムです。
何故axなどがnilになってしまうのでしょうか??(>_<)

925 :デフォルトの名無しさん:2006/07/25(火) 05:53:56
>924
RUBYの宿題教えてください。
http://pc8.2ch.net/test/read.cgi/tech/1106572657/

926 :デフォルトの名無しさん:2006/07/25(火) 14:09:03
>## ax < bx < cx となるようにした

どうやってそうしたんだよ。そこがバグってるに決まってるだろ。

927 :デフォルトの名無しさん:2006/07/25(火) 14:13:15
くだ質ですが ruby 1.8.4 (2005-12-24) [i386-mswin32] の環境で
文字列クラスのメモリ領域を開放するのって↓のやり方で正しいですか?

str = ""

それとクラス関数で

class IniParam
  def get_string( key, default )
    ret = default
    f = open("myprog.ini", 'r')
    ini = f.read
    f.close
    ini.scan(/^#{key} *=.*/){ |s|
      ret = s.gsub(/^#{key} *= *(.*)/, '\1')
    }
   ret
  end
end

上記のget_string関数を呼び出した後で
ローカルで使った ini のメモリ領域って開放されますか?

928 :デフォルトの名無しさん:2006/07/25(火) 14:57:14
924の情報の出し方は、わかってからかってるのか真剣に悩んでいるのかちっともわからん。


929 :デフォルトの名無しさん:2006/07/25(火) 15:01:27
>>927
>文字列クラスのメモリ領域を開放するのって↓のやり方で正しいですか?
いいえ。その後解放されるかもしれないしされないかもしれません。
あと、どうでもいいけど、普通は str = nil とするかと思います。


>ローカルで使った ini のメモリ領域って開放されますか?
いいえ。その後解放されるかもしれないしされないかもしれません。


どうでもいいけど、「開放」じゃなくて「解放」な。


930 :デフォルトの名無しさん:2006/07/25(火) 15:38:06
if /hoge/ !=~ のようなことがしたいのですが
unless /hoge/ =~ でやるのが普通なんでしょうか?

931 :デフォルトの名無しさん:2006/07/25(火) 15:40:43
普通 !~ だよな

932 :デフォルトの名無しさん:2006/07/25(火) 15:41:38
>>928
解ってからかってる方に1るびま

933 :デフォルトの名無しさん:2006/07/25(火) 15:44:52
>>927
Rubyのメモリの解放は、GCが勝手にやってくれるので
あまり気にしなくてもいい
どうしても意図的にやりたければ

str = nil
GC.start

でおk

>>930
一応、unlessの方が一般的だと思われる

934 :デフォルトの名無しさん:2006/07/25(火) 16:15:53
>>933
>Rubyのメモリの解放は、GCが勝手にやってくれる
だから、解放されるかもしれないしされないかも(ry

935 :デフォルトの名無しさん:2006/07/25(火) 16:31:27
>>931
ども
そんなの初めて知りました

936 :デフォルトの名無しさん:2006/07/25(火) 17:09:14
>>933 はイマイチ理解してなさそうだな。いろいろ。

937 :デフォルトの名無しさん:2006/07/25(火) 18:03:03
$'と$`で格納する情報が異なることを知ったんですが`はキーボードのどこを打つと出ますかこの書き込みはコピペです。


938 :デフォルトの名無しさん:2006/07/25(火) 18:04:24
$`の部分がコピペということです。どなたかご教授お願いします。

939 :デフォルトの名無しさん:2006/07/25(火) 18:06:21
普通に出ました失礼しました。

940 :933:2006/07/25(火) 18:21:03
>>936
kwsk

941 :デフォルトの名無しさん:2006/07/25(火) 19:05:47
むしろ933はここにいる他の誰よりも詳しいような気がする。

942 :927:2006/07/25(火) 19:44:56
>>929>>933
レスありがとうございます。いろいろ考えましたが、ガベコレに任せることにします。

別件でまた質問で恐縮なのですが

sec_files.each { |s|
  dist_files.each { |t|
    break if /^#{s.file}$/ == t.file
  }
  disp_string "削除:[#{s.id}] #{s.file}" if $~ == nil
}

↑の処理するときに、一度も内側のイテレータ通らなかった時って、
$~ が不定だと思うんですが、$~ = nil って勝手に代入しても大丈夫でしょうか?
それとも何かほかの良い方法がありますでしょうか?

943 :デフォルトの名無しさん:2006/07/25(火) 19:52:52
>>942
いまのところ、不定じゃなくてnilになると思うが、変わるかもしれないし、
普通に一時変数を使ったらどうだ?


944 :デフォルトの名無しさん:2006/07/25(火) 20:00:04
if $~ == nil
は、
unless $~
と書く方がいいよ。


945 :デフォルトの名無しさん:2006/07/25(火) 21:50:41
>>944
意味違ってるじゃん。 unless肯定派にしても unless $~.nil? だろ。

946 :デフォルトの名無しさん:2006/07/25(火) 22:30:08
>>942
dist_filesに一致しないものについてdisp_stringを呼びたいんなら、any?を
使うほうがわかりやすいと思う。
あと、RegexpとStringでマッチさせたいなら==じゃなくて=~だな。

 pat = /^#{s.file}$/
 unless dist_files.any? {|t| pat =~ t.file}
  disp_string "削除:[#{s.id}] #{s.file}"
 end


947 :デフォルトの名無しさん:2006/07/25(火) 23:26:08
>>945
そもそも$~.nil?にする必要がないもの
値がfalseである可能性があるならともかく
そうでなければわざわざnil?を使う必要はない

948 :デフォルトの名無しさん:2006/07/26(水) 00:06:16
>>947
可読性って知ってるか?

949 :デフォルトの名無しさん:2006/07/26(水) 01:08:14
>>948
どっちが自然に感じるかは人による
俺はnil?付けない派だなー

950 :デフォルトの名無しさん:2006/07/26(水) 01:38:05
945は痛いということがわかった。



951 :デフォルトの名無しさん:2006/07/26(水) 01:56:33
というか、unlessは俺の言語感覚になじまないので使わない

952 :デフォルトの名無しさん:2006/07/26(水) 02:00:14
if厨はこれだからwwwwwww



if厨ってなんだ

953 :デフォルトの名無しさん:2006/07/26(水) 02:22:31
unlessやnil?は各人の好みが出るよな
実用上は大差ないだけに

954 :デフォルトの名無しさん:2006/07/26(水) 09:19:32
オレはif使わずにunlessだけでやるよ?

955 :デフォルトの名無しさん:2006/07/26(水) 10:16:26
rubyのGraphics Library で一番メジャーなのは何ですか。
GDは2001年に開発がストップしているみたいなのですが。



956 :デフォルトの名無しさん:2006/07/26(水) 10:36:20
>>955
そもそも、rubyでGUIを作るか? 他にツールはいくらでもあるが、
まあ、ruby/tkか、ruby/Gtkだろ。

957 :デフォルトの名無しさん:2006/07/26(水) 11:40:20
>>954
マジか

958 :デフォルトの名無しさん:2006/07/26(水) 13:28:42
unless と if not は意味が違うからね。

959 :デフォルトの名無しさん:2006/07/26(水) 14:02:50
>>956
RMagickとかそんな答えを期待しているような気がするが。
imlibのラッパーがあるならそれでもいいかも。

960 :デフォルトの名無しさん:2006/07/26(水) 14:58:13
unlessにはelsifを続けられないという致命的な欠点があるな。

961 :デフォルトの名無しさん:2006/07/26(水) 14:59:16
Windowsで、OneClickInstaller + gem で rakeをインストールしました。
cygwinのbashで、rake.batは入るんですが、rakeが(スクリプト)が入ってくれません。
rakeを入れる方法はないですか?

962 :デフォルトの名無しさん:2006/07/26(水) 18:11:22
>>961
>cygwinのbashで、rake.batは入るんですが、
意味がわからん。

963 :デフォルトの名無しさん:2006/07/26(水) 19:20:31
rake.batはインストールされるんですが、rakeはインストールされないんです・・・

964 :デフォルトの名無しさん:2006/07/26(水) 20:30:23
あー、意味がわかった。
cygwinのbashから実行したいからrakeスクリプトそのものが欲しいんだけど、
ということか。

で、意味はわかったけど、解決方法は知らん。
誰か詳しい人、よろ。

965 :デフォルトの名無しさん:2006/07/26(水) 20:54:58
cygwinのパッケージで入れる。

966 :デフォルトの名無しさん:2006/07/26(水) 22:40:36
うん
rake.batが、rakeで実行できればいいんだけどねー
って、alias作ればいいのか orz

967 :デフォルトの名無しさん:2006/07/27(木) 01:18:44
普通にリナクスつかえばいいと思う。
バーチャルPCも無料公開されてるし。

968 ::2006/07/27(木) 06:19:21
>>955
rcairoは?

969 :デフォルトの名無しさん:2006/07/27(木) 13:17:59
>>959
ありがとうございます。
参考にします。

970 :デフォルトの名無しさん:2006/07/27(木) 15:24:00
うい

971 :デフォルトの名無しさん:2006/07/27(木) 18:36:31
$KCODE を指定すれば正規表現が日本語対応するってのは
完全ではないのかな?
ruby -Ke -e 'p(/[^あ]い/ =~ "あい")'
がマッチしないのに
ruby -Ke -e 'p(/[^あ]い/i =~ "あい")'
がマッチしてしまう。

972 :デフォルトの名無しさん:2006/07/27(木) 22:05:01
>>971
バージョンは?

973 :デフォルトの名無しさん:2006/07/28(金) 03:09:50
>>971
それ()1.8系列のバグ。

何ヶ月か前の ruby-list で報告されてたはず。
1.8.5のpreviewか。1.8.4でもstable-snapshotなら多分おk


974 :デフォルトの名無しさん:2006/07/28(金) 06:40:11
おいおい、よりによってコードロジックからでは見えにくい
正規表現機能にバグがあるのかよ。
やっぱ個人が開発してるフリーソフトは恐くて業務には使えんなあ…

975 :デフォルトの名無しさん:2006/07/28(金) 07:17:34
0点。
はい、次の方〜

976 :デフォルトの名無しさん:2006/07/28(金) 07:21:32
商用の場合、こういった修正はむしろ手抜き。
ビジネスではコスト意識が出てくるから、繊細な作業ってカットされる。
針の穴に糸を通すような作業は、時間を浪費できるフリーソフトならではのものだよ。

なお、漢字を100%きっちりサポートする正規表現エンジンはかなり少数派。
(だからRubyの正規表現エンジンは次世代で交代する)
この辺り、世間的に認知されてないから、どこもサポートが悪いの。

977 :デフォルトの名無しさん:2006/07/28(金) 10:43:45
これでこまるひとってなんでもかんでも正規表現で済ませようとするひとだけでしょ

978 :971:2006/07/28(金) 11:32:16
>>973
ありがとう。バグか制限かが知りたかったんです。
それでプログラミングの方針が変わりますから。
バージョンは 1.8.4 リリース版です。

979 :デフォルトの名無しさん:2006/07/28(金) 13:52:13
そもそも日本語を正規表現でマッチさせようとしているのに"i"をつけるのがヘン

256 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)