[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:4757] Re: Now,I am starting ruby.

From: mamoru@... (Mamoru Matushita)
Date: 1997-10-02 13:34:38 UTC
List: ruby-list #4757
WATANABE Hirofumi wrote:

> それと最初に 0 と書いた test.dat を作らないといけないのでファ
> イルがなければ作るという処理を加えたほうがいいかもしれないで
> すね. あと file の lock も.
>  

ファイルロックについてさんざん悩んだあげくこんな変なソースになってしまい
ました。
あまりにも恥ずかしいので出すのもどうかとは思いましたが、出さないことには

アドバイスがもらえないので恥を忍んで出しちゃいます。(^_^ゞ
その過程でsyntax,fanctionなどを見たのですがファイルを作る方法は解りまし
たが
ファイルを削除する方法がどうしても解りません。perlで言うところのunlinkは
rubyでは
どうすればいいのでしょう?またperlで言うところのsymlink,flock,mkdir関数
などは
あるのでしょうか?そういえばrubyには関数ないんでしたっけ?
その辺もいまいち解ってません。情けない・・・・(^_^ゞ
大変厚かましいお願いなんですが「これがファイルロックのお手本だ!」
みたいなソースどこかにあったら教えてもらえませんでしょうか?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
$dat="./test.dat";
$lock="./lock";

#lock
try=0;
error=0;

begin
 lockfile=open($lock,"r");
rescue
 try+=1;
 if try>5 then
  error=1;
 else
  sleep(2);
  retry;
 end
end

#ロックファイルを削除する命令。

if error==1 then
 c="error\n";
else
 count=open($dat,"r");
 c=count.gets.to_i;
 c+=1;
 count.close;

 count=open($dat,"w");
 count.print c;
 count.close;

 count=open($dat,"r");
 c=count.gets;
 count.close;
end

#html
print"Content-type:text/html\n\n";
print"<html><head><title>count test</title></head>\n";
print"<body>\n";
print c;
print"</body></html>\n";

lockfile=open($lock,"w");
lockfile.close;

exit 0;
--------------------------ここまで

また、ソースが見苦しい原因は、オブジェクト指向言語にも関わらず
全然そのような組み方をしていないことだと思うのですが、
perlでいうところの

&aaa;
sub aaa{
    print"aaa\n";
}

てなかんじにしたいのですがrubyでこのようにサブルーチン化するには
どうすればいいのでしょうか?これはオブジェクト指向って言うのとは
違う気がしますが、とりあえずプログラムソースをすっきりしたいです。

aaa
def aaa
    print"aaa\n";
end

こんな感じにしたら1行目のaaaでエラーになります。
恥を忍んでお伺いします。
どなたか私にrubyの第一歩を踏み出させてくれませんでしょうか?
-----------------------------------------------------------
ホームページ随時更新中!! 遊びに来てね。
I like it!(http://www.kannet.or.jp/matusita/index.htm)
Java Java Java(http://www.kannet.or.jp/matusita/jindex.htm)
 

In This Thread