Ruby 初心者スレッド Part 18at TECH
Ruby 初心者スレッド Part 18 - 暇つぶし2ch200:デフォルトの名無しさん
08/03/04 03:28:37
>>197
Kconv::RegexpEucjp と Kconv::RegexpUtf8 だな
いわゆる全角文字と半角カタカナだけ欲しい場合は [\x00-\x7f] だけの行を消すといい

irb> puts 'aa康1アアア1煕表示字典ねdこd'.scan(/(?:\x8e[\xa1-\xdf]|\x8f[\xa1-\xdf][\xa1-\xfe]|[\xa1-\xdf][\xa1-\xfe])+/n)

アアア
煕表示字典ね



201:178
08/03/04 07:36:00
>>191
File.rename使って色々やってみたんですが
やはり上手く行かなくて…

>>199

> File.open('data.dat','w') の時点でファイルの内容がクリアされてしまっている。
それはそうですね、確かに。

ちなみに、以下のコードみたいにする事で、だいぶ頑丈になりました!

#Read
File.open(path, 'r'){|f|
f.flock(File::LOCK_SH)
data = f.read
}

#Write
File.open(path, File::WRONLY | File::CREAT){|f|
f.flock(File::LOCK_EX)
f.rewind
f.write(data)
f.truncate(f.tell)
}

#Append
File.open(path, 'a'){|f|
f.flock(File::LOCK_EX)
f.seek(0, File::SEEK_END)
f.write(data)
}

202:デフォルトの名無しさん
08/03/04 11:22:04
どうして atomic な方のディレクトリロックを使わないん?

203:ルファー ◆XSlQ/Lfer.
08/03/04 12:48:34
Win32APIライブラリを使い、DLL関数から文字列を取得するにはどうすれば良いんですか?
ツクール(URLリンク(tkool.jp))のRGSS1を使っているので、バージョンアップできないし、
ライブラリはRubyで作らないとrequireできないし・・・。

204:デフォルトの名無しさん
08/03/04 13:07:45
>>203
URLリンク(www.google.com)

205:ルファー ◆XSlQ/Lfer.
08/03/04 13:11:44
>>204
あぁ、解決しました。ありがとうございます。

206:デフォルトの名無しさん
08/03/04 13:14:27
うわあ…

207:デフォルトの名無しさん
08/03/04 13:40:32
1レスで解決したならそれはそれでいいじゃん

208:デフォルトの名無しさん
08/03/04 16:42:14
標準添付のWeb::Agentって使ってる人いる?

209:デフォルトの名無しさん
08/03/04 20:58:32
ruby -v; egrep '¥<Web¥>' **/*(.)
ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
webrick/httprequest.rb: # (URLリンク(Web.Golux.Com))
webrick/httpservlet/filehandler.rb: # (Web Distributed Authoring and Versioning)

どこにあるクラス?


210:デフォルトの名無しさん
08/03/04 22:17:54
Noraは標準添付ではない。

211:デフォルトの名無しさん
08/03/06 06:35:30
例えばCで定義された以下の様な構造体があって
その構造体のデータが格納されたデータファイルを
1レコードずつRubyスクリプトで読み込む時に

struct Record{
char n, int a, int b;
};

以下の様な、なんだか非効率な方法しか分かりません…
とりあえず、一括してreadして、あとで上手くunpackで切り分けとか出来ないでしょうか?

File.open('data.dat', 'rb'){|f|
while !f.eof?
n = f.read(1)
a = f.read(4)
b = f.read(4)
data.push(n.unpack('L')[0].to_s + ',' + a.unpack('S')[0].to_s + ',' + b.unpack('L')[0].to_s)
end
}

212:211
08/03/06 06:38:11
× data.push(n.unpack('L')[0].to_s + ',' + a.unpack('S')[0].to_s + ',' + b.unpack('L')[0].to_s)
○ data.push(n.unpack('c')[0].to_s + ',' + a.unpack('i')[0].to_s + ',' + b.unpack('i')[0].to_s)

213:デフォルトの名無しさん
08/03/06 08:08:47
>>211
# char n の後ろに3バイトのパディングがあると仮定して
data << f.read(12).unpack('cxxxii').join(',')

214:211
08/03/06 11:22:00
>>213
あ、レスどうも。

一応以下みたいなコードでだいぶマシになりました。
あとはループ展開するとかで、どうにか納得いく速度が出せそうです。

tmp = ''
data = []
File.open('data.dat', 'rb'){|f| data = f.read }
(tmp.size / 9).times{
(n, a, b) = tmp[p, 9].unpack('LSL')
p += 9
data.push(n + ',' + v + ',' + b)
}

215:211
08/03/06 11:23:35
× (n, a, b) = tmp[p, 9].unpack('LSL')
○ (n, a, b) = tmp[p, 9].unpack('cii')

216:デフォルトの名無しさん
08/03/06 12:37:48
見てるこっちが切なくなるやりとりだな・・・

217:デフォルトの名無しさん
08/03/06 12:51:12
pで表示すると、
"hoge"
とカッコ付きで表示されます。
hoge
とカッコなしで表示するにはどうしたらいいですか?

218:デフォルトの名無しさん
08/03/06 12:54:06
print

219:デフォルトの名無しさん
08/03/06 12:57:41
え?pってprintの略じゃなかったんですか…

220:211
08/03/06 13:15:50
>>216
何かもっと良い方法があればご教示下さい><

221:デフォルトの名無しさん
08/03/06 14:08:49
>>219
そういう解説をしてるサイトか書籍があったら即晒せ

222:211
08/03/07 02:24:18
これ以上良い方法が思いつかない…

data = []
File.open('data.dat', 'rb'){|f|
tmp = f.read
cnt = tmp.size / 9
a = tmp.unpack('cii' * cnt)
cnt.times{|i| data.push([a[3 * i], a[3 * i + 1], a[3 * i + 2]].join(',')) }
}

223:デフォルトの名無しさん
08/03/07 03:07:28
効率といっても速度なのかメモリフットプリントなのかコードサイズなのか
data = f.read.enum_for(:scan, /.{9}/m).map {|x| x.unpack('cii').join(',') }

あと、>>213が書いてるけど、パディングは考慮してある?
処理系によっては#pragma packeとか


224:211
08/03/07 03:39:45
>>223
効率は速度です><

>パディングは考慮してある?
ちょっと説明の仕方が悪かったです…
要するに、[1][4][4] の各バイトのデータの並びという事です(バディングは考慮する必要はないです)

変な説明をしてすみませんでした!><

225:デフォルトの名無しさん
08/03/07 09:55:09
>>217
ダブルクォートをカッコと呼ぶやつは初めて見た。

226:デフォルトの名無しさん
08/03/07 11:30:10
カッコ悪い呼び方だよな

227:デフォルトの名無しさん
08/03/07 15:05:55
審議中AAry

228:デフォルトの名無しさん
08/03/07 15:13:38
Float のメソッドで、
「0 から遠い方に丸める(切上げ)メソッドはありません。」
のはなんでだろう?

truncate (to_i) との対称性から、あってもバチは当たらないと思うんだけど。
やっぱ名前?

229:デフォルトの名無しさん
08/03/07 18:16:19
【審議チュウ】

   (⌒ー⌒) (⌒ー⌒)
(⌒-⌒)´・ω)(・ω・`(⌒ー⌒)
(  ´・ω ー⌒)(⌒ー⌒)ω・` )
| U(  ´・) (・`  ) と ノ
~-u (l    ) (     ノu-u'~
    ~'u-u'  `u-u`~






               _
            /´  `フ
           /      ,!
           レ   _,  r ミ       (⌒ー⌒)
          /  `ミ __,xノ゙、      r(   ´n
.         /        i        >   ,/   (⌒ー⌒)
         ,'    .     ,'     ~'oー、_)     r(   n)
        ;     ',  l  l                `/  <_
        i       |  | |              ~'し -一┘
      ,.-‐!     ミ  i i                     (⌒ー⌒)
     //´``、    ミ  、 ー、                   ( ´・ω)
.    | l    `─-ハ、,,),)'''´                 ~、/  っっ
     ヽ.ー─'´)                   (⌒ー⌒)   └ー-、ぅ
        ̄ ̄                      r、´・ω・))
                  (⌒ー⌒)      >  _/´
        n__n        (´・ω・`)    ~'し-一┘
      (⌒ー⌒)ノ         c'   っ
    c('・ω・`)っ      ~(_,'ーo'

230:デフォルトの名無しさん
08/03/07 18:55:39
なんだかわからんがなごんだ

231:デフォルトの名無しさん
08/03/07 21:00:49
ショッピングカートを作っています。
session["cart"]=Hash.new
session["cart"][@itemid]=@amount
のような形でsession["cart"]にハッシュを詰め込みたいのですが、
sessionにハッシュを詰め込むことは無理なのでしょうか?
また、無理であればto_aで配列に変換して詰め込もうと思うのですが、
元に戻すとき、
@tempSession=Hash[*session["cart"].flatten]
と、WEBの公式マニュアル(ハッシュの項)にあるようにやっても
うまくいきません…。
どなたかご教授いただければ幸いです。

232:デフォルトの名無しさん
08/03/07 21:03:38
なお、使っている鯖はlolipopで、Rubyバージョンは1.8.2です。
よろしくお願いいたします。

233:デフォルトの名無しさん
08/03/08 11:53:03
>>231
デフォルトだと文字列しか格納できない。
任意のオブジェクトを格納するには CGI::Session::PStore を使う。
require 'cgi/sesion/pstore'
session = CGI::Session.new(cgi, 'database_manager'=>CGI::Session::PStore)
session[key] = Hash.new

234:231-232
08/03/08 12:52:26
>>233さん
書き込み後、文字列→配列へ変換→処理→文字列へ返還でできましたが、
やはりコードが汚くなったので悩んでいました。
PStoreについて勉強してみようと思います。
これで悩みが解決しそうです。ありがとうございました!

235:デフォルトの名無しさん
08/03/08 14:00:53
>>234
JSON や YAML の文字列に変換するという手もある。

236:デフォルトの名無しさん
08/03/08 14:16:02
「文字列→配列へ変換→処理→文字列」と似たようなシロモノ紹介してどうする

237:デフォルトの名無しさん
08/03/08 15:27:12
はあ?YAMLやJSON使うなら手軽だしコードが汚くなることもないじゃん。
ちゃんとメリットあるものを紹介してなにが悪いの?

238:デフォルトの名無しさん
08/03/08 15:36:34
net/httpについての質問です。
対象ページの[keywords][description]を取得したいのですが
http.getで返ったボディを正規表現で抜き出す以外によい方法はないでしょうか?
宜しくお願いします。

239:デフォルトの名無しさん
08/03/08 15:43:58
>>237
236じゃないが、
突っ込む前と取り出した後に処理がいらうってとこの
面倒くささは大して変わらないじゃん。
CGI::Session::YAMLStoreとかをこさえて使うなら
アリだろうけど。

240:デフォルトの名無しさん
08/03/08 16:06:45
>>238
[keywords][description] というのが何を指してるのかイマイチよーわからんが

<meta name="keywords" content="Ruby,初心者,プログラミング" />
<meta name="description" content="プログラミング言語Rubyの初心者が集うスレです。" />

というようなののことを指してるのだと勝手に解釈

特定のページのkeywordsとdescriptionの2つにしか興味がないというのなら、
特定のページ専用の正規表現で最初にマッチする文字列を抜き出すのが素直だし時間もかからない

どんなページのどんな変態HTMLが来るのかわからないというのなら、HpricotとかのHTMLパーサを使うといい

241:デフォルトの名無しさん
08/03/08 16:39:04
>>240
レスありがとうございます。
おとなしく正規表現で取得しようと思います。

242:デフォルトの名無しさん
08/03/08 19:52:15
変数名を代入した変数を使って新しい変数を作るにはどうしたらいいですか?
PHPで言う$$var = 'value'
みたいなことをしたいのです

243:デフォルトの名無しさん
08/03/08 20:33:46
そんな曲芸みたいな処理は本当に必要なのか?

244:デフォルトの名無しさん
08/03/08 21:04:35
インスタンス変数ならinstance_variable_get/setで出来ることはできる。


245:デフォルトの名無しさん
08/03/08 22:05:57
Threadで引数に渡した値はthread内のローカル変数として使われて、他のスレッドの影響を受けないというような事が書いてありますが、つまりこういう事なんですか?

foo = 1
a=1
Thread.new( foo ){ | bar |
bar += 10
a += bar
hoge = a
}

この場合、barの値は他のスレッドの影響は受けないが、aは他のスレッドの影響を受けて値が変わってしまう。

bar は常に11が入っている状態になるが、aは他スレッドの影響を受けた場合、11とは限らない。

影響を受ける変数とそうでない変数との違いがいまいち分からん・・・。

246:デフォルトの名無しさん
08/03/08 22:45:41
え、単なる変数のスコープの問題なんじゃないん?

247:デフォルトの名無しさん
08/03/08 23:19:54
え、そうなん?
ちょっと考えてみる。。。

248:デフォルトの名無しさん
08/03/09 00:09:29
あ、ブロックの問題か。
他のスレッドの影響を受けるような物って、どうやって作るんだ。
あれあれ。

249:デフォルトの名無しさん
08/03/09 00:21:16
リファレンスの例がそのまま分かりやすいと思うけど

for i in 1..5
# スレッド内のiが書き換わる可能性がある
# Thread.start { p i }

# スレッド固有のローカル変数になる
Thread.start(i) {|t| p t }
end


250:デフォルトの名無しさん
08/03/09 01:04:04
それはブロックの問題にならないのか。。

#1
foo = 1
Thread.new{
foo +=10
}

ってのと
#2
for i in 1..5
Thread.new{ p i }
end

って両方ともスコープの問題なように思えてしまいます。
#2は他スレッドの影響で i の値が変わるのではなく、外側のスコープの
i が変わっているから変わってくるのでは?
#それともそういうつもりで書かれたんですかね。





251:デフォルトの名無しさん
08/03/09 01:25:56
ThreadのMutexの使いどころって言うのは、

1同じスコープを共有している
2同時に実行されている処理がある

1、2が当てはまる場合で、かつ2の両者が同じ変数をアクセスする際に
Mutexは使うべきなんだと思うんですが、スレッドの処理がまるまるメソッド化
されている場合はそもそも1が当てはまらないから、Mutexは必要ない
って認識でOKですか?

#ex.
i=0
th = []
def thread_run
puts i
end

1000.times{
th.push Tread.new{ thread_run }
}

while true
i += 1
puts i
end


252:250
08/03/09 01:30:13
いや、やっぱ

for i in 1..5
 Thread.new{ p i }
end

は他スレッドの影響を受けているのか。
そう公式リファに書いてあるもんなw

他スレッドの影響で i が書き変わって、
かつ、i はブロックの外側のスコープだから
影響を受けてしまうっちゅーことか。

253:デフォルトの名無しさん
08/03/09 08:35:45
スレッド生成した直後にスレッドの処理が終了するようなテストじゃ
よそのスレッドの影響受けてるかどうかもわからんだろ
for i in 1..5
 Thread.start(i) {|n| sleep(n) ; puts 'i = %d : n = %d'%[i,n] }
end

254:デフォルトの名無しさん
08/03/09 16:05:40
「特定のWebサイトにある特定の動的HTMLを取得して解析してデータを蓄積・別途表示するよスクリプト」
というありがちなものを頑張って作ってます

で、最近微妙にスレでも話題なRSpecとか使ってテストとかしようと思ったんですが、
「Webサイトに接続してHTMLを取得するかわりにローカルのHTMLファイルを読み込ませたい」です
定番の書き方とか方法とか考え方とかありますか

255:デフォルトの名無しさん
08/03/09 16:21:39
>>253
でたなsprintf厨

256:デフォルトの名無しさん
08/03/09 16:27:34
>>255
でも文字列への埋め込みよりは論理的にも見える
ていうか指示子覚えちゃったら結構どっちもどっちだよね

257:デフォルトの名無しさん
08/03/09 16:47:32
>>254
とりあえず
「アクセス用URIを作るクラス」
「URIを引数で受け取ってHTMLを取得しそのまま返すクラス」
「HTMLを引数で受け取って解析しデータ構造にして返すクラス」
「データを引数で受け取ってDBとかに保存するクラス」
とか細かく分けるんだ

258:デフォルトの名無しさん
08/03/09 16:56:12
>>253 がそうかは知らないけど
Python 使ってると Ruby でもそう書きたくなる
5.times じゃなくて for i in 1..5 してるのもそれっぽいと感じた
関数のカッコも省略してないし

259:デフォルトの名無しさん
08/03/09 18:57:30
Rubyのライブラリリファレンス本て結構いい値段するけど
ネットで見れるマニュアルに比べてのアドバンテージって何ですか?
検索も出来ないし、買う意味あるのかなーと思うんですが。

260:デフォルトの名無しさん
08/03/09 18:59:25
結局はwindowsのHTMLヘルプが一番いいね

261:デフォルトの名無しさん
08/03/09 19:01:28
>>259
金光編のなら、持ってますが、買う価値ないです。


262:デフォルトの名無しさん
08/03/09 19:10:21
>>259

・ まじめな意味でお布施
・ オンラインヘルプの利用ができない環境向け
・ 安くない本を買ったんだからと自分を追い込む用

263:デフォルトの名無しさん
08/03/09 19:17:12
return self
(returnなしでも桶)の効用がわかった気がする

264:デフォルトの名無しさん
08/03/09 19:24:33
半年前の自分のスクリプトはいい意味でも悪い意味でも読めないよね
Perlでの妙な凝りっぷりほどじゃないけどさ

265:デフォルトの名無しさん
08/03/09 19:41:28
ちょっと聞きたいんだけど、

irb(main):001:0> require "kconv"
=> true
irb(main):002:0> puts "シーソーゲーム".kconv(Kconv::UTF8, Kconv::SJIS).kconv(Kconv::SJIS, Kconv::UTF8)
シーメ[ゲーム
=> nil

ってやると元通りのものが帰ってきてくれないのはなんでなんだぜ?

266:デフォルトの名無しさん
08/03/09 20:02:55
rubyのバージョンとかは?

267:デフォルトの名無しさん
08/03/09 20:05:05
バージョンあんま関係ないと思うぞ
irb> p "シーソーゲーム".kconv(Kconv::UTF8,Kconv::SJIS)
"\343\202\267\343\203\274\343\203\241[\343\202\262\343\203\274\343\203\240"


268:デフォルトの名無しさん
08/03/09 20:09:06
それ単純に$KCODEが適切じゃないだけだと思う
puts "シーソーゲーム"でもシーメ[ゲームって出力されるだろ多分

269:デフォルトの名無しさん
08/03/09 20:23:12
$KCODEのデフォルトは日本語環境のWndowsであろうが、NONE


270:デフォルトの名無しさん
08/03/09 20:24:20
>>266
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

>>268
ぬぉほんとだ
勉強不足だったみたいだ 調べてくるありがとー

271:デフォルトの名無しさん
08/03/09 21:02:16
すまんもーいっこ聞きたいんだけど、ある変数ではSJISで、ある変数ではUTF8で持つとかってできないの?

test = "シーソー"
puts test.kconv(Kconv::UTF8, Kconv::SJIS)

で、ruby -Ks hoge.rb とかすると意図した通りUTF8で"シーソー"って出てくるけど、$KCODE = "SJIS"とかだとうまく動いてくれんのだが…
2種混在とか無理なのか?

272:デフォルトの名無しさん
08/03/09 21:10:17
>>271
できるよ
というかStringオブジェクト自体には文字コードの情報は付記されてない
内容を表示したり正規表現にマッチさせたりするときに利用メソッド側で改めて調べてる

273:デフォルトの名無しさん
08/03/09 21:24:28
>>272
そうなのかー
リファレンス見ると、KCODEが影響するのは
* インタプリタの字句解析器 etc
って書いてあるけど、これって例えば
test = "シーソー"
の "シーソー" を評価するときにKCODEを元に評価してtestに代入するってこと?

つか
$KCODE = "SJIS"
test = "シーソー"
puts test
ってやっても文字化けるのが納得いかん
irbとかでやると化けずにでるのも意味がわからん…

274:デフォルトの名無しさん
08/03/09 21:35:55
#!ruby -Ks
test = "シーソー"
puts test

275:デフォルトの名無しさん
08/03/09 21:38:31
>>274
それでちゃんとできるのは知ってる
$KCODEだとできたりできなかったりするのが不思議な昨今です

276:デフォルトの名無しさん
08/03/09 21:41:34
>>273
あ、悪い、$KCODEについては誤解がけっこう蔓延してる
$KCODE='s'はRubyスクリプトだから、これが解釈されるということは既に実行済みってことでそのファイルについては手遅れなんだ
(それ以降にrequireとかで読み込んだファイルは$KCODEにしたがって解釈してくれる)

スクリプトの先頭からShift_JISだと認識した上で読み込んで実行してくれないと困るので、普通は-Ksを使う
Windows版Rubyでも、 1行目に
#!ruby -Ks
とか適当に書いておくだけで、スクリプト解釈前(構文木生成前)に適当に解釈してくれる

スクリプトを読み込む
    ↓ -Ks の出番
スクリプトを解釈する
    ↓
プログラムを実行する
    ↓ $KCODE='s' の出番


277:デフォルトの名無しさん
08/03/09 21:48:52
スクリプト中に書き込まれた日本語文字列に駄目文字がなければ
$KCODE='NONE'(つまり #!ruby -Ks 無し)でも動くんだよ
駄目文字があった場合はうまく動作しない
Ruby作者さんも言っとる

URLリンク(blade.nagaokaut.ac.jp)
> まつもと ゆきひろです
> |あまりよい解決方法ではないかもしれませんが,二行目に
> |$KCODE='SJIS'
> |とするとruby -Ksと同じ挙動になると思います.
> |
> |#!/usr/bin/env ruby
> |$KCODE='SJIS'
> |
> |のような感じでどうでしょう.
>
> 残念ながら「$KCODE='SJIS'」の解釈は実行時に行われるので、プ
> ログラムの読み込みを行う時点での処理が行われません。たとえば
> ソースコードがSJISであった場合に文字列中の「表」などの処理が
> 適切に行われないことになります。


278:デフォルトの名無しさん
08/03/09 22:21:01
require したファイルの名前って一覧できますか。


279:デフォルトの名無しさん
08/03/09 22:23:14
>>278
irb> p $"
["irb.rb", "e2mmap.rb", "irb/init.rb", "irb/context.rb", "irb/workspace.rb", "irb/extend-command.rb",
"irb/ruby-lex.rb", "irb/slex.rb", "irb/ruby-token.rb", "irb/input-method.rb", "readline.so", "irb/locale.rb",
"kconv.rb", "nkf.so"]


280:デフォルトの名無しさん
08/03/09 22:25:29
>>278
$" ($LOADED_FEATURES)



281:デフォルトの名無しさん
08/03/09 22:27:09
>>279,280
さんくすです

もいっこ質問。
PHPとRubyとで、Webアプリのセッション情報を共有することはできますか。

282:デフォルトの名無しさん
08/03/09 22:28:59
>>281
テキストでファイルに保存あるいはテキストベースで遣り取り可能ならできんじゃね

283:デフォルトの名無しさん
08/03/09 22:36:49
memcachedとかでもイケそう。


284:デフォルトの名無しさん
08/03/09 22:51:30
セッション情報って別に形式決まってないよな

285:デフォルトの名無しさん
08/03/09 23:44:58
>>276
そうなのかー
$KCODE = "SJIS"を読んだ時点で設定が変更されんのかと思った
つーことはファイル毎に文字コードの設定が可能ちぅことか

>>277
ソースまで発掘してもらって申し訳ねぇ
でも2行目でやればいいってのはなんでなんだろう?
Rubyってインタプリタなんじゃないの?
読み込んだ片端から逐次実行なんじゃないの?
わかんねー

286:デフォルトの名無しさん
08/03/10 00:09:27
1.8は構文木、1.9は中間コードに一旦変換してるが、インタプリタには違いない
URLリンク(ja.wikipedia.org)

287:デフォルトの名無しさん
08/03/10 00:14:18
1. -Kオプションを解釈
2. パース
3. 実行

ソース中の「表」とかが問題になるのは2の時点、
$KCODEへの代入が実行される3の時点では手遅れ

288:デフォルトの名無しさん
08/03/10 00:32:56
>>286-287
全部一旦構文木にしてから実行すんのか?
Rubyって前方宣言じゃなかったっけ?

前方宣言だよなぁ→読み込み即実行だよなぁ→$KCODEに値代入した時点で即有効になる気がするよなぁ
っていう発想なんだが…

289:デフォルトの名無しさん
08/03/10 00:42:34
宣言してるというより実行時に作り上げてるだけ

290:デフォルトの名無しさん
08/03/10 02:01:50
なんか勝手な前提で色々考えてる感があるが…
$KCODE = "SJIS"
↑これだって単なる代入式なんだから実行されるまで作用しないだろ。

前方宣言どころかクラス定義やメソッド定義まで実行文だぞ。

291:デフォルトの名無しさん
08/03/10 06:51:16
配列自体をeachで変更したいのですが、どうしたらいいですか?
破壊的メソッドは!を付けるので
each!とかやってみたのですが駄目でした

292:デフォルトの名無しさん
08/03/10 07:00:14
>>291
要素数が同じでいいなら普通はmap!やcollect!を使う

irb> arr = [1,2,3]
irb> arr.map!{|e| e*2}
irb> p arr
[2, 4, 6]

293:デフォルトの名無しさん
08/03/10 07:04:59
>>292
おお!ありがとうございました

294:デフォルトの名無しさん
08/03/10 07:19:01
mapでの写像を覚えるとRubyコードのステキ度が100単位でアップするので超お勧め

「配列の要素をひとつずつ取り出して計算してひとつずつ格納する」から
「ある配列にブロックを作用させてもうひとつの配列を作る」という思考と記述が自然に行えるだけで超絶パラダイム
昨日までの小学生レベルのプログラムの勉強とはオサラバよオ・サ・ラ・バ

295:デフォルトの名無しさん
08/03/10 16:36:07
WinXPで音声編集をできるライブラリがあったら教えてください。
RAAを見た限りではなさそうですが。

1. 1秒以上の無音部分で音声ファイル分割
2. file1とfile2を、間に1秒無音部を入れて結合

というような事をやりたいです。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch