Rubyで、はじめて仕事用のプログラムを作りました。
よく使うし、これはとても役に立ちます。
こうしたらいいとか、気の付いたことがあれば教えてください。
# 以下、プログラム(インデントは全角スペースなので、copyしてもエラーが出ます)
ipath = "px1600" #input path
name_h = "r1" #name header
count = 0
Dir.open(ipath).each{|file|
if file =~ /(.*)\.(JPG|jpg)$/
count += 1
name_c = ("00" + count.to_s).slice(-2,2)
File.rename(ipath + "/" + file, ipath + "/" + name_h + name_c + ".jpg")
end
}
2008/1/31
とても大きな問題がありました。ファイルが消失する場合があります。
変更前と変更後に同じ名前があるとき、ファイルが消滅する可能性があります。
実際、このプログラムを2回続けて実行すると、消失することがあります。
2008/1/31
Dir.open(...).each{...} # 推測ですが、closeされないのではないか?
Dir.open(...){|d| d.each{|f| ...}} # やっぱりこうかな?
とにかく、ある程度、試用してから公表すべきだよね。
とにかくうれしくて、ついつい、やってしまった。(後悔)
2008/2/10
変換元と変換後のフォルダを別にすることにして解決
2008-01-28
2008-01-13
正則性公理-無限降下列の禁止?
あいかわらず、正則性公理は「なぞ」である。
が、これを仮定することによって、無限降下列x1∋x2∋x3∋...を排除できるらしい。
ここのところは、自分にはまだ理解できていない。
「無限降下列が存在しない」ならば「推移的な集合は最小元を持ち」、「整列できる」。
つまり、順序数の集合や基数の集合を考えたときに、昇順に整列できる。
これが、ひとつのミソかも。
謎:「正則性公理」→「無限降下列x1∋x2∋x3∋...は存在しない」
誰か教えてくれないかなぁ。
2008/3/26: かがみさんからコメントをいただきました。------------------------------
> 正則の公理は Xが空でない集合の場合、ある x ∈ X が存在し x ∩ X = φ ということでした。
> 今、無限降下列 x_1∋ x_2∋x_3∋... が存在したと仮定します。すると X={ x_n : n ∈ ω } が正則の公理の反例となります。
> 実際、任意の n ∈ ω に対し x_{n+1} ∈ x_n ∩ X となります。
2008/4/6: 納得です。
が、これを仮定することによって、無限降下列x1∋x2∋x3∋...を排除できるらしい。
ここのところは、自分にはまだ理解できていない。
「無限降下列が存在しない」ならば「推移的な集合は最小元を持ち」、「整列できる」。
つまり、順序数の集合や基数の集合を考えたときに、昇順に整列できる。
これが、ひとつのミソかも。
謎:「正則性公理」→「無限降下列x1∋x2∋x3∋...は存在しない」
誰か教えてくれないかなぁ。
2008/3/26: かがみさんからコメントをいただきました。------------------------------
> 正則の公理は Xが空でない集合の場合、ある x ∈ X が存在し x ∩ X = φ ということでした。
> 今、無限降下列 x_1∋ x_2∋x_3∋... が存在したと仮定します。すると X={ x_n : n ∈ ω } が正則の公理の反例となります。
> 実際、任意の n ∈ ω に対し x_{n+1} ∈ x_n ∩ X となります。
2008/4/6: 納得です。
登録:
投稿 (Atom)