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

Ruby初學者スレッド Part 9

■ このスレッドは過去ログ倉庫に格納されています
0001紅寶石2006/11/21(火) 08:33:42
まずはマニュアル

マニュアル
http://www.ruby-lang.org/ja/man/
Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby リファレンスマニュアルの Windows HTML Help版
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
Rubyリファレンスマニュアル刷新計画
http://doc.loveruby.net/


前スレ
Ruby初心者スレッドPart8
http://pc8.2ch.net/test/read.cgi/tech/1159424939/

>>2-10
0205デフォルトの名無しさん2006/12/01(金) 19:30:26
>>204
変わりません。
0206デフォルトの名無しさん2006/12/01(金) 21:05:02
>198
その通り。

private にしているのは、意図せず foo_A で外から呼ばれないようにしたいなあという意思表示です。深い意味はありません。

ところで、

class C<B
def foo_A; puts "foo_A in C"; end
end
とすると、

irb(main):006:0> C.new.bar
foo_A in C
bar in B
=> nil

うーん、これはまあ仕方ないが。これ以上頑張るなら>197
02072042006/12/02(土) 02:44:54
>>295
ありがとう
0208デフォルトの名無しさん2006/12/02(土) 03:39:14
ロングパスだ
0209デフォルトの名無しさん2006/12/02(土) 13:54:31
作者著のRubyの本amazonで買った!楽しみだな〜!
0210デフォルトの名無しさん2006/12/02(土) 14:12:30
Rubyの初心者です
timesメソッドの中にif文を入れて,もし条件を満たしていれば
timesメソッドから抜けたいのですが,どうすればいいのでしょうか。
if文の中でbreakしてもtimesメソッドからは抜けられなかったので質問しました
どうかよろしくお願いします
0211デフォルトの名無しさん2006/12/02(土) 14:33:54
>>210
3.times do |n|
  break if n%2 == 1
  puts n #=> 0だけ表示される
end
#=> 全体として nil が返る

一体どんなコード書いたんだ?
0212デフォルトの名無しさん2006/12/02(土) 16:49:13
実はProcess.timesだったとか。
0213デフォルトの名無しさん2006/12/02(土) 19:53:39
csvファイルのレコード数(行数)を簡単に得られるメソッドか方法はありますか?
メージ的にはこんな感じ

csv = CSV.open('file.csv', 'r')
p csv.size ##-> 行数

Arrayにしてから数えるしかないのでしょうか?
0214デフォルトの名無しさん2006/12/02(土) 21:02:29
>>213
csv を扱うライブラリーに"csv.rb"がある
マニュアルは下記、HPで。( rubyのマニュアルにあるHPはリンク切れ)
http://dev.ctor.org/doc/csv/

行数だけなら↓のようになるかな
require "csv"
filename = 'hoge.csv'
i = 0
CSV.open(filename, 'r') do |x| i += 1 ;end
p i
0215デフォルトの名無しさん2006/12/02(土) 21:04:06
それは単にテキストファイルの行数とどう違うの?

nlines = open('file.csv').read.delete("^¥n").size
全部読んで、改行以外を抹殺して改行だけになったら文字数を数える。

つーかsystem("wc")するとか…
0216デフォルトの名無しさん2006/12/02(土) 22:30:15
GNU textutils-2.0.tar.gz の wc.c
----
case '\n':
lines++;
/* Fall through. */
case '\r':
case '\f':
if (linepos > linelength)
linelength = linepos;
linepos = 0;
goto word_separator;
case '\t':
linepos += 8 - (linepos % 8);
goto word_separator;
case ' ':
linepos++;
/* Fall through. */
----
だそうなので、Rubyが自前で\nを数えても wc とやってることは結局いっしょっぽい。
というか、wc だからといって何かすごい小細工があるわけでもない模様。

ファイルを全部メモリに保持するときのメモリの圧迫が気になるなら
ファイルを数百バイトずつ読んで捨てつつ改行だけカウントすれば。
0217デフォルトの名無しさん2006/12/02(土) 22:40:48
地味だね

まあ、ファイルの改行をカウントするためだけに
ファイル開いて全部舐めてカウントして捨てて閉じるというのは
なんとなく無駄というかもったいない感じはしなくもない
0218デフォルトの名無しさん2006/12/02(土) 22:46:06
>>181です >>190さん、ありがとうございました。
すみません。。。ボタンを押すとフォルダの中のファイル(0000.wav〜0009.wav)をランダムに再生するものを作りたいのですが
Dir.globでの操作が上手くいかず。。。お願いします。
下のはとりあえず、1個ずつ読み込んで再生しようと思ったのですが、最後しか再生されません。
VRMediaViewをmmとして、読み込むファイルをfnとして再生させています

def open_clicked
@mm.mediaclose
dirname = "sound/hoge"
Dir.glob("#{dirname}/*.wav").sort.each do |fn|
@mm.mediaopen(fn) if fn
@mm.play
end
end

これをランダムにしたいのですが、どのようにすればよいのか。。。お願い致します
0219デフォルトの名無しさん2006/12/02(土) 22:49:31
>>218
ランダムにしたいというのはどういうことなのか考える
次に、ランダムを表現するためのメソッドとかを探してみる
んで、そのメソッドをどう利用すればランダムに「なる」か考えてみる

即っとコード出しちゃう人もいそうだけど
0220デフォルトの名無しさん2006/12/02(土) 22:56:31
ランダムに選ぶ練習ってしてないのかな?
入門書や解説サイトには必ずある例題だと思うんだけど…

組み込み"関数"の rand を使うと乱数がもらえるぞ
0221デフォルトの名無しさん2006/12/02(土) 23:05:37
randを使うのは了解しているのですが
Dir.globとの組み合わせのところでうまくいかず。。。
それからディレクトリが1個読み込んで再生ではなく、一度に全部読み込んで最後だけ再生となってしまって
色々試行していたのですが、、、助け舟を頂きたく
0222デフォルトの名無しさん2006/12/02(土) 23:13:48
>>221
君が参考にしてる解説本あるいは解説サイト晒せ(w

p で色々調べるといい。
Ruby では、ドットの「前」にあるオブジェクトがどういう状態になってるか常に意識しれ。
具体的に言うと Dir.glob("#{dirname}/*.wav") がどういう風になってるか p で調べてみ。

調べたら、それをランダムに選ぶにはどうしたらいいか考える。
0223デフォルトの名無しさん2006/12/02(土) 23:31:16
ここを基本に見ております
ttp://www.osk.3web.ne.jp/~nyasu/software/vrproject.html

p ですか…すいません。。。仰っている意味が理解できずです
もう一度 print("hello world\n")からやり直してきます。。。
ただ、時間がもうあまり無く、解答だけでもいただけるとありがたいです。
0224デフォルトの名無しさん2006/12/02(土) 23:41:35
時間?
0225デフォルトの名無しさん2006/12/02(土) 23:43:34
時間(笑)
0226デフォルトの名無しさん2006/12/02(土) 23:57:38
list = Dir.glob("#{dirname}/*.wav")
target = list[ (list.size() * rand()).to_i ]
p target
0227デフォルトの名無しさん2006/12/03(日) 00:06:03
ありがとうございますm(_ _)m
ソースのとおり変更したら上手くいきました。

ただこれでは自分の身にならないので、どこのサイトで勉強をすればよいのかお教え願えますでしょうか
自分ではこのソースは書けないので。。。

本当にありがとうございました
0228デフォルトの名無しさん2006/12/03(日) 00:06:13
そこは to_i ではなく truncate と書くべきだと思う
つーか rand(list.size) で用済まないか
0229デフォルトの名無しさん2006/12/03(日) 00:06:54
時間ってw
02302262006/12/03(日) 00:08:24
やはり、使い慣れん言語使うと、しくじるな。>>228 のとおりだ。
0231デフォルトの名無しさん2006/12/03(日) 00:10:26
truncateってto_iとどう違うの?
0232デフォルトの名無しさん2006/12/03(日) 00:15:34
>>231
動作は一緒

英単語上のニュアンスの違いしかないんじゃないかな
「整数にする」と「切り捨てる」の違い

"3.14"を3にしたい場合は"3.14".to_i
3.14を3にしたい場合は3.14.truncate

ただ、こういうくだらないとこに拘る奴が中にいるとプロジェクトは混乱する(w
0233デフォルトの名無しさん2006/12/03(日) 00:18:00
def yomikomi
教えてください。
Ruby/Qteなのですが、

dic = open("/home/zaurus/.anthy/private-dic.src")
dictxteuc = dic.read
dictxtu8 = dictxteuc.kconv(Kconv::UTF8,Kconv::EUC)
@dicedit.setText(dictxtu8)
#$defaultCodec.toUnicode
end

とすると、@diceditとしたQmultiLineEditの中の感じがすべて文字化けしています。
なにがわるいんでしょうか?教えてください。

ちなみに/home/zaurus/.anthy/private-dic.srcの中身は、EUC-JPのハズです。
0234デフォルトの名無しさん2006/12/03(日) 00:29:35
>>226
1.8系だと Dir.glob("#{dirname}/*.wav") はwin環境だとちょっとまずい。
まじでさっさと対応版出して欲しい。
02352332006/12/03(日) 00:36:55
すみません。順番がめちゃくちゃだったので、もう一回書き込みしておきます。

教えてください。
Ruby/Qteなのですが、

def yomikomi
dic = open("/home/zaurus/.anthy/private-dic.src")
dictxteuc = dic.read
dictxtu8 = dictxteuc.kconv(Kconv::UTF8,Kconv::EUC)
@dicedit.setText(dictxtu8)
end

とすると、@diceditとしたQmultiLineEditの中の感じがすべて文字化けしています。
なにがわるいんでしょうか?教えてください。

ちなみに/home/zaurus/.anthy/private-dic.srcの中身は、EUC-JPのハズです。

0236デフォルトの名無しさん2006/12/03(日) 00:42:10
>>235

Qte のことは分からんが、どこが悪いか、まずは、各行の後でデバッグ出力出してみろ
(文字化け避けるため、それぞれ別のファイルに出した方がいいな)
まずは「どこ」が悪いのか特定するんだ。
0237デフォルトの名無しさん2006/12/03(日) 00:58:31
>>234
どうまずいの?
02382352006/12/03(日) 01:04:37
それが、エラーは出したようではないのですよ。
出力された物はは確かに思った出力ではないのですけどね。
0239デフォルトの名無しさん2006/12/03(日) 01:19:19
どこで習うべきなんだろうね、こういうの

def errlog(text,name)
File.open("/home/zaurus/rubyerror-#{name}.txt",'w'){|f|
f.write(text)
}
end

def yomikomi
dic = open("/home/zaurus/.anthy/private-dic.src")
dictxteuc = dic.read
errlog(dictxteuc,'euc') # 確認用出力
dictxtu8 = dictxteuc.kconv(Kconv::UTF8,Kconv::EUC)
errlog(dictxtu8,'utf8') # 確認用出力
@dicedit.setText(dictxtu8)
end

こうしてみろってことだろ、要は。
rubyerror-euc.txtがちゃんとEUC-JPかどうか、
rubyerror-utf8.txtがちゃんとUTF8かどうか確かめろってことかね
0240デフォルトの名無しさん2006/12/03(日) 01:26:28
別にエラーメッセージを出せと言ってるわけじゃない。

dic = open("/home/zaurus/.anthy/private-dic.src")
open("1.txt","w").print dic
dictxteuc = dic.read
open("2.txt","w").print dictxteuc
dictxtu8 = dictxteuc.kconv(Kconv::UTF8,Kconv::EUC)
open("3.txt","w").print dictxtu8

まぁ、デバッガとか使えば、もっと楽なんだろうがな。
02412402006/12/03(日) 01:27:12
くそ、かぶった。はずかし
0242デフォルトの名無しさん2006/12/03(日) 01:31:16
>>240は面白い書き方してるな
仮に出力してる感がわかりやすくていい
02432352006/12/03(日) 01:36:22
>236, >239

ほんとにありがとうございます。
ちなみに、ファイルは正確に変換されていたようです。
とすれば、最後の方の@dicedit.setText(dictxtu8)と
送られた先のQmultiLineEditのあたりがあやしそうですね。

ちなみに、これが初めてのプログラムなので習うというよりも、
習熟度がきわめて低いのが発想力のなさの一因なのでしょうねorz
0244デフォルトの名無しさん2006/12/03(日) 01:39:40
>>243

悩め、苦しめ、ジタバタしろ。
それが貴様の血となり肉となる。
orz する必要は全くない。
0245デフォルトの名無しさん2006/12/03(日) 01:46:53
>>243

QTe のことは分からんが、そのソースで理論上うまくゆく「はず」
ということであれば、環境変数とか設定ファイルとか、
初期化ルーチンあたりで設定するパラメータとかの値が悪いんでないかい?
(そんなもんがあるとしたらの話だが)
0246デフォルトの名無しさん2006/12/03(日) 01:48:35
>244
ありがと。もう少しがんばってみるよ。

QmultiLineEditクラスは、マルチバイト扱ってくれんのかなぁ。
0247デフォルトの名無しさん2006/12/03(日) 01:52:47
「QTe 文字化け」でぐぐると何か書いてたりしないかね
0248デフォルトの名無しさん2006/12/03(日) 01:58:14
>247
それやってみます。m(. .)m
0249デフォルトの名無しさん2006/12/03(日) 02:25:39
>>237
sjisのbyte目が []{} なんかと被ると誤動作する。
02502352006/12/03(日) 02:26:13
解決。

@dicedit.setText(tr(dictxtu8))
~~~
翻訳(translate)しなきゃだめだよね。
これ、一回こうなおしたと思ったのに・・・・
みんなありがと。とりあえず寝ます。
0251デフォルトの名無しさん2006/12/03(日) 12:11:20
しつもーん。
nil.to_s が "" を返すということは積極的に使っていいもんですか?

「キー hoge がハッシュ h に登録されてないか登録されてても値が空("")のとき true」を

 h['hoge'] == nil or h['hoge'].empty?

ではなく

 h['hoge'].to_s.empty?

と書くのは邪悪?
0252デフォルトの名無しさん2006/12/03(日) 12:28:06
devでnil.to_s = "nil" になるという話が出たり引っ込んだりしてたので
やめといたほうがいい。あれは結局引っ込んだのかな。引っ込んだとしても
またいつ復活するか分からんしなー。

railsの構成要素である active_support の blank? を使う方がいいかもしれない。
nil, 0, "", [] などに対して真を返す。
0253デフォルトの名無しさん2006/12/03(日) 12:29:01
げ、0.blank? は偽だった。
0254デフォルトの名無しさん2006/12/03(日) 16:42:22
すいません。
ミニゲームを作ってHPで公開してみんなに遊んでもらう
(javaアプレットのような。)にはどうしたら良いのでしょうか。
0255デフォルトの名無しさん2006/12/03(日) 16:48:50
勉強すればいいと思う。
「javaアプレットのような」はほぼ不可能。
02562542006/12/03(日) 16:53:52
そうなんですか?
いっそjavaに乗り換えたほうが楽なのか…
ありがとうございます。
0257デフォルトの名無しさん2006/12/04(月) 10:23:11
213の続きです。CSV::to_a.sizeが一番シンプルでスマートのようです。
ところで,to_a,メソッドの振る舞いですが
#!/usr/local/bin/ruby
require 'csv'
outfile = File.open('csvout', 'wb')
CSV::Writer.generate(outfile) do |csv|
csv << ['c1', nil, '', '"', "\r\n", 'c2']
end
outfile.close
csv = CSV.open("csvout", "rb")
p csv.to_a #1->[["c1", nil, "", "\"", "\r\n", "c2"]]
p csv.to_a #2->[]
csv.close
上記のように変わってしまいます。これはそんなものなのですか?
「!』がついていないので,変化しないと思っていたのですが,知らないとうっかりしそうです。
0258デフォルトの名無しさん2006/12/04(月) 12:48:14
そのcsvはFile(IO)のインスタンスなので、to_aはファイルを全部読んで配列にして返す。次の呼び出しではファイル末尾にいるので、空になる。
0259デフォルトの名無しさん2006/12/04(月) 15:27:21
>>251
正確には hash.key?('key') || hash['key'].empty? だけど
このばあいだったらHash#fetch()を使って hash.fetch('key', '').empty?
(ただし hash['key'] == nil ならエラーになるかな)
いちばんいいのは
def nil.empty?; true; end
hash['key'].empty? # nilか空文字列ならtrue

nil.empty? は標準化してほしい。
0260デフォルトの名無しさん2006/12/04(月) 21:05:01
HTMLコーダーですがイントラネット内で使用する小ツールを作ることになりました。
Rubyを習得して作りたいと思っているのですが、
以下のようなアプリをRuby作ることは難しいでしょうか(向いているでしょうか)?

・作りたいもの
HTMLで作られたフォーム部品を選択、もしくは入力して実行ボタンを押すと
入力した内容に沿った形式の帳票を印刷する。(帳票の形式は複数ある)
また、印刷履歴を管理し、ブラウザで参照できるようにする。

・やりたいこと
IE6上で動作し、インターフェイスと処理結果はHTMLとCSSで作る。
データ形式はXMLで値の取出しにはXPathを使う。

・制限
サーバに何かプログラム(例えばApacheなど)をインストールすることは許可されていない。
できればクライアントにも特別何かを導入したくない。(WindowsXP+IE6+ネットワークがあれば実行できるようにしたい)
クライアントの環境はWindowsXP+IE6のみ。その他の環境は考慮しなくてOK。


以上になります。
0261デフォルトの名無しさん2006/12/04(月) 21:10:45
>>260
> サーバに何かプログラム(例えばApacheなど)をインストールすることは許可されていない。
この時点で、ほぼ何も出来ないんだけど。
鯖にはRubyがインストールされていて、CGIとかで動かすことができるの?
鯖スペック詳しく。

> WindowsXP+IE6+ネットワークがあれば実行できるようにしたい
Rubyはどこで動きますか?電子の海で?

HTML+CSSで帳票ってあまり向かないような気がするんだけど大丈夫?
# 日本の帳票は変態仕様が多い

帳票のための入力データはどこから来ますか?
もしXMLなのであれば、XSLTで変換してやればおしまいのような気がするけどどう?
02622602006/12/04(月) 21:40:46
>>261
サーバにRubyはインストールされていません。
Exerbというツールでスクリプトをexe形式にすれば
特別実行環境がなくても使えるようなので、
それを使いつつ、インターフェイスなどはIE6上でHTMLとCSSでできたら
効率的かなぁと考えたのですけれどもそんな虫のいいことはできないのでしょうか。

イメージ的には
1.イントラネット上の共有フォルダ上にあるexeを実行。
2.ブラウザが起動してフォームページが表示される。
3.フォームに必要事項を記入して実行。
4.帳票プレビューが表示される。
5.確認して印刷。

CSSならある程度使いこなせるので紙に合わせて作れると思います。
入力データはXMLです。
XPathでデータを取ってきてプログラムからHTMLを書くことを考えていましたが
ページ自体はXSLTで実現させることもできますね。気が付きませんでした。

HTML,CSS,XML,XSLTはそこそこわかるので積極的に利用しつつ
処理の部分でRubyを使っていきたいのですが上記のようなことはできないのでしょうか?
0263デフォルトの名無しさん2006/12/04(月) 21:41:28
>>260
VBAで印刷や入力補助を小細工したえくせるの帳簿ファイルを
Windowsネットワークの共有フォルダに置いてみんなに共有させる
0264デフォルトの名無しさん2006/12/04(月) 21:57:11
作れると思います、ではなく実際に作ってみてから言うんだな>CSSで帳簿
0265デフォルトの名無しさん2006/12/04(月) 22:05:51
net/httpを使ってホームページにアクセスするプログラムを作っているのですが
ページによってはCookieが有効でありませんと弾かれてしまう事があります。
これを解決できる良い方法は何かないでしょうか?
0266デフォルトの名無しさん2006/12/04(月) 22:13:39
クッキーのやりとりがどうやって行われているか調べればよいのでは?
etherealでもなんでもいいからパケット覗けばわかるっしょ。
0267デフォルトの名無しさん2006/12/04(月) 23:15:55
>>262
クライアントにexeを置くだけでは、それは無理。
IEを捨てて、アプリでなんとかするなら可能。
どちらにせよ、Rubyは不向き。
HTMLコーダのチミにも不向き。
0268デフォルトの名無しさん2006/12/05(火) 00:15:26
JScript or VBScript で HTA あたりを書いとくのが無難でないかい。

まぁ、ActiveScriptingRuby 使えば、Ruby でもできなくはないだろうが、
exerb 使えたっけ?あれ

 
0269デフォルトの名無しさん2006/12/05(火) 09:51:13
>>262
そういうアホな仕様の実現方法を考えるのは嫌いじゃないのだが考えられるのは
* ASRのHTA
* Webrickとかを使ってHTTPサーバとして動作するexeを作る
* WIN32OLEでなんとかする(フォームイベントがとれるかどうかが肝だが怪しい)
ぐらいか。
ブラウザだとHTAかHTTPしか手段がないからな。

>>268
1.8.4ならだいたい確実にできるらしい。
ttp://arton.hp.infoseek.co.jp/indexj.html
0270デフォルトの名無しさん2006/12/05(火) 10:25:52
>>269
仕様を素直に実現するなら、HTAを使うのが正解だと思うんだが、
その場合ActiveScriptEngineとしてのASRをインストールというか
登録する必要がある。
それは問題ないのかねえ?

もし俺がやるなら、2番目のWEBrickでHTTPサーバ立てる、を選ぶな。
楽だし。
0271デフォルトの名無しさん2006/12/05(火) 14:37:43
>>270
あーそりゃ問題だ。
無理。
実行時に必要なファイルだけインストールしちゃえばいいかも。
0272デフォルトの名無しさん2006/12/05(火) 17:42:22
>* Webrickとかを使ってHTTPサーバとして動作するexeを作る

これを詳しく教えてください。
0273デフォルトの名無しさん2006/12/05(火) 17:55:36
>>272
WEBrickを使ってHTTPサーバとして動作するスクリプトを作る。
そしてそれをExerbでexe化する。
以上。
0274デフォルトの名無しさん2006/12/05(火) 18:08:04
>>273
それはrailsでつくったアプリケーションでもできますか?
0275デフォルトの名無しさん2006/12/05(火) 18:53:03
>>274
やってる人はいるよ。
Rails製のデスクトップアプリを作った人がいる
0276デフォルトの名無しさん2006/12/05(火) 21:50:21
すまんが教えてくれ棒だす
WindowsXPでruby-1.6.8使っててnet/httpsを使いたいんだが
Netで探したhttpsサンプル動かそうとすると
uninitialized constant Net (NameError)
とエラーがでるんだよ。
でNet-1.2.0だかが必要なのかなと(あてずっぽで)思って
そいつを探してるんだけど、
これってNet上どこにあってPCのどこにおけばいいの?
それともそもそも大間違い?

サンプルコードはこれ
require 'net/https'
Net::HTTP.version_1_2
https = Net::HTTP.new( 'www.foo.var', 443 )
https.use_ssl = true
https.ca_file = '/ca-bundle.crt'
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.verify_depth = 5
https.start { |w|
response = w.get('/')
puts response.body
}
0277デフォルトの名無しさん2006/12/05(火) 21:58:13
opensslとnet/httpsが追加されたのはruby 1.8.0からだな。
どっかに単独配布時代の落ちてればいいんだが、ミツカンネ。
頑張って探すかRubyのバージョン上げてくれい。
0278デフォルトの名無しさん2006/12/05(火) 22:00:05
>>276
1.8.5 使いなさい。
0279デフォルトの名無しさん2006/12/05(火) 22:00:36
http://www.nongnu.org/rubypki/
ここが単独時代の跡地らしいが、ダウンロードリンク切れになってるな。
02802762006/12/05(火) 22:30:38
277,278,279
ありがとう(号泣しそうです
にちゃんで久しぶりに親切な人たちを見た!お前ら大好き!
素直に1.8.Xにするずら
0281デフォルトの名無しさん2006/12/06(水) 08:17:37
Ruby始めて1年以上経つんですが、(日曜プログラマです。大学でJavaを軽くやった程度です)
1.ローカル変数、インスタンス変数、(あと、Classクラスのインスタンス変数ですか)、クラス変数のスコープが、
  複数ファイルにクラス定義が分割されてたり、
  クラスやモジュールがネストされた関係にあったり、
  後から特異的に定義されたりすると、何が何かわからなくなってしまいます。
  一応、自分なりに、色々動かして、こんな感じじゃないかなぁとは思うようになったんですが
2.このことを、動的言語っていうこととか、宣言文とか、
  そういう話も含めて、
  こういう原則というか、思想に基づくから、
  この変数は、ここまでがスコープなんだよとかいう風に
  説明してくれてるような、本とかドキュメントとかないでしょうか。
3.例としては、カプセル化したいから、publicとかprivateとかあって
  インスタンス変数は、元々privateなんだよ、というような説明があればいいんですが。

こういう理解は、C言語覚えて、ソース読まないといけないんでしょうか。。
それとも、アプローチの仕方が悪いんでしょうか。


読んだ本は以下の感じです。
たのしいRuby(1版)、
Rubyレシピブック
Ruby on Rails関連の本
0282デフォルトの名無しさん2006/12/06(水) 08:38:32
1.2.3.の使い方が意味わからない
0283デフォルトの名無しさん2006/12/06(水) 08:46:10
>>282
Excelでおk
0284デフォルトの名無しさん2006/12/06(水) 11:59:01
>>283
はいはいLotusLotus
0285デフォルトの名無しさん2006/12/06(水) 14:12:19
咲け〜輪廻のOh〜
0286デフォルトの名無しさん2006/12/06(水) 19:37:58
>>281
プログラミングRuby第二版言語編
初めてのプログラミング

この二冊は読んでおいて損はないはず
0287デフォルトの名無しさん2006/12/06(水) 23:12:05
cronからruby/tkスクリプトを動かしてwindowを開かせるには、どうすればいいんでしょう?
cronからwindowを開かせるには、例えば
xterm -display :0.0
のようにXサーバを指定しなければならないようですが、
その方法が分かりません。
0288デフォルトの名無しさん2006/12/06(水) 23:52:29
>>287
RubyよりもXの質問になるね。
DISPLAY環境変数exportしておけば?
あと xhostとかで使用許可を出しておかないとたぶん表示させてくれない。
0289デフォルトの名無しさん2006/12/07(木) 00:18:48
つーかcronからじゃどのDISPLAYに出したらいいか、
そもそもあるのかどうかすらわからんだろう。

~/.xsessionとか~/.xinitrcあたりで、時間がくるまで眠ってるプロセスでも
バックグラウンドで走らすとか。
0290デフォルトの名無しさん2006/12/07(木) 00:43:51
php5なんて誰も使ってないから
0291デフォルトの名無しさん2006/12/07(木) 18:08:09
>>281
こんなんもあった

http://www.ruby-lang.org/ja/man/?cmd=view;name=trap%3A%3A%A5%B9%A5%B3%A1%BC%A5%D7%A1%A2%C0%A9%B8%E6%B9%BD%C2%A4
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=%A5%B9%A5%B3%A1%BC%A5%D7
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Ruby%A4%CE%B7%E7%C5%C0
http://shugo.net/jit/20050328.html
http://homepage1.nifty.com/~tetsu/ruby/tips/#var_scope
http://www.swlab.it.okayama-u.ac.jp/man/ruby/uguide/uguide22.html

http://wota.jp/ac/?date=20060309
http://idm.s9.xrea.com/ratio/2006/11/08/000535.html

このあたり読むと、わかるんじゃない??
0292デフォルトの名無しさん2006/12/08(金) 02:01:33
初心者すぎてすみません。

CSVのファイルを開いて

1,2,3,4
5,,3,6
2,,,3
↑このように保存されている

split使って
1
2
3
4
5

3
6
2


3

のように新しくCSVファイルを作りたいんですけど
どうやってやればいいですか?
すみません。。。
0293デフォルトの名無しさん2006/12/08(金) 02:40:25
>>292
まず、p を使ってスクリプト途中のデータの構造や状態を把握。把握したら適当に処理。
0294デフォルトの名無しさん2006/12/08(金) 02:55:30
宿題っぽいやかん
0295デフォルトの名無しさん2006/12/08(金) 03:00:22
これでいい?
puts File.read('csv').split(/,|\n/)
0296デフォルトの名無しさん2006/12/08(金) 03:30:26
宿題っぽい質問にはやらしい解法の回答しか返ってきません
0297デフォルトの名無しさん2006/12/08(金) 03:45:11
ちょっとくらい教えてあげればいいのに。
ケチやな。

まぁおれにはできないけど(爆
0298デフォルトの名無しさん2006/12/08(金) 04:48:30
どうやって新しく "CSV" ファイルを作るんだろう
0299デフォルトの名無しさん2006/12/08(金) 07:19:27
朝のお祈りを忘れなければできる
0300デフォルトの名無しさん2006/12/08(金) 10:03:29
>298
結果を新たに作った csv ファイルに書き込むんじゃないのか?
0301デフォルトの名無しさん2006/12/08(金) 13:04:20
でも csv っていうくらいだから(ry
0302デフォルトの名無しさん2006/12/08(金) 13:26:02
だよな・・・・
0303デフォルトの名無しさん2006/12/08(金) 23:25:10
フォルダの最終懇親時間を書き換えようと思って File.utime() を使ったんだけど
Permission denied で書き換えられなくてちょっと困ってます。
どうすればいいでしょう。
環境は ruby 1.8.5 (2006-08-25) [i386-mswin32] の win2000 です。
0304デフォルトの名無しさん2006/12/08(金) 23:30:49
クラスメソッドを定義するのに
特異メソッドの定義方法を用いると
どうなります?

なんか、どこかで見かけた気がするんですが。。
■ このスレッドは過去ログ倉庫に格納されています